在字符串的正则模式之后捕获字符串的正则表达式

考希克公里

我需要正则表达式的帮助。

我们有以下字符串:

$VAR = [1550181700, '"xyz (gmail.com)" ', 'Hi Team, Please ON HOLD,HostName: kmkkmk.abc.com, Job Name: dat-inh-ndw-q9n580_prd106.f, Job Name: dat -inh-rdm-q9n717_jdapfrdly.b,工作名称:dat-inh-rdm-q9n717_jdapfrdly.b,问候,DSG 团队']

在上面的字符串中,我需要在“Job Name:”之后和下一个 COMMA(,) 之前捕获任何内容,这意味着我必须获得一个字符串列表作为输出,其中包含如下内容:[dat-inh-ndw-q9n580_prd106.f, dat-inh-rdm-q9n717_jdapfrdly.b,dat-inh-rdm-q9n717_jdapfrdly.b]

注意:我们不知道“Job Name:”在上面的字符串中可能出现多少次。

克里斯托夫·赫罗德

嗯,这在一定程度上取决于您的基础设施。基本上,您的 Regex 看起来有点像这样(假设为 .NET 语法):

"Job Name:\\s*([^,]*)"

这将捕获字符串“JobName:”后跟任意数量的空格。然后,我们有一个包含任意数量字符的捕获组,这些字符不是逗号 ([^,]*)。使用它,您可以开始一个匹配过程,它将为您提供第一个捕获组中所需的所有字符串。

这就是基础设施的用武之地。您是否需要在 .NET 上下文、JavaScript、PHP 或其他环境中使用它?命令将根据所使用的技术而有所不同。

更新 1: (Perl 代码)

$s = "$VAR = [1550181700, '\"xyz (gmail.com)\" ', 'Hi Team,Please ON HOLD,HostName: kmkkmk.abc.com,Job Name: dat-inh-ndw-q9n580_prd106.f,Job Name: dat-inh-rdm-q9n717_jdapfrdly.b,Job Name: dat-inh-rdm-q9n717_jdapfrdly.b,regards,DSG Team']";

@jobNames = [];
while($s =~ /Job Name:\s*([^,]*)/gi) {
    push @jobNames, $1;
}

这将为您提供@jobNames 数组中所需的所有名称。但是,如果您只需要正则表达式作为函数的参数,我们可能需要稍微更改一下。

更新2:(使用后视断言)

您实际上可能正在寻找的是所谓的零宽度后视断言。它定义了一个要匹配的模式,但不包含在结果中。然后,正则表达式将如下所示:

/(?<=Job Name: )[^,]*/

(?<=...)构造告诉正则表达式仅匹配以下模式,如果它前面是括号中定义的任何内容,在您的情况下为“作业名称:”。但是,这不应包含在结果中。因此,只有模式的其余部分将成为您结果的一部分。

注意:您可能已经注意到,我用\s*常规空格替换了冒号后的构造。这是因为在使用 \s* 构造时,我的在线 perl 操场给了我一个“在正则表达式中未实现的可变长度后视”错误。然而,它可能适用于您的 perl 实现。如果您确定,在冒号后面总会有一个空格,您可以继续使用单个空格。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

正则表达式递归捕获的字符串

来自分类Dev

正则表达式-匹配字符串模式

来自分类Dev

正则表达式模式以分割字符串

来自分类Dev

正则表达式-匹配字符串模式

来自分类Dev

字符串模式的scala正则表达式

来自分类Dev

字符串模式的 Java 正则表达式

来自分类Dev

正则表达式-在时间戳记之后捕获字符串

来自分类Dev

在我的模式之后停止匹配正则表达式中的字符串

来自分类Dev

正则表达式,用于从以下模式捕获字符串

来自分类Dev

正则表达式在字符串之间捕获字符串

来自分类Dev

正则表达式:从字符串开头捕获零或一个位置的字符模式

来自分类Dev

正则表达式以字符串开头但之后不包含特殊字符

来自分类Dev

正则表达式捕获字符串,直到字符或行尾

来自分类Dev

如何将正则表达式模式存储为正则表达式对象或字符串?

来自分类Dev

如何将正则表达式模式存储为正则表达式对象或字符串?

来自分类Dev

正则表达式将字符串中的递归模式分组并以数组形式返回捕获组

来自分类Dev

正则表达式以非固定长度的后视捕获模式 - 拆分字符串

来自分类Dev

从仅与正则表达式模式匹配的字符串中提取字符

来自分类Dev

如何使用正则表达式模式在字符串的开头或结尾限制特殊字符?

来自分类Dev

正则表达式,用于文本中的特殊字符和字符串模式

来自分类Dev

正则表达式之间切字符串

来自分类Dev

使用正则表达式匹配字符串?

来自分类Dev

正则表达式区分字符串键

来自分类Dev

逗号分隔字符串的正则表达式

来自分类Dev

Java正则表达式匹配字符串

来自分类Dev

Java字符串与正则表达式的区别?

来自分类Dev

Java正则表达式截断字符串

来自分类Dev

拆分字符串,不带正则表达式

来自分类Dev

正则表达式分割字符串

Related 相关文章

  1. 1

    正则表达式递归捕获的字符串

  2. 2

    正则表达式-匹配字符串模式

  3. 3

    正则表达式模式以分割字符串

  4. 4

    正则表达式-匹配字符串模式

  5. 5

    字符串模式的scala正则表达式

  6. 6

    字符串模式的 Java 正则表达式

  7. 7

    正则表达式-在时间戳记之后捕获字符串

  8. 8

    在我的模式之后停止匹配正则表达式中的字符串

  9. 9

    正则表达式,用于从以下模式捕获字符串

  10. 10

    正则表达式在字符串之间捕获字符串

  11. 11

    正则表达式:从字符串开头捕获零或一个位置的字符模式

  12. 12

    正则表达式以字符串开头但之后不包含特殊字符

  13. 13

    正则表达式捕获字符串,直到字符或行尾

  14. 14

    如何将正则表达式模式存储为正则表达式对象或字符串?

  15. 15

    如何将正则表达式模式存储为正则表达式对象或字符串?

  16. 16

    正则表达式将字符串中的递归模式分组并以数组形式返回捕获组

  17. 17

    正则表达式以非固定长度的后视捕获模式 - 拆分字符串

  18. 18

    从仅与正则表达式模式匹配的字符串中提取字符

  19. 19

    如何使用正则表达式模式在字符串的开头或结尾限制特殊字符?

  20. 20

    正则表达式,用于文本中的特殊字符和字符串模式

  21. 21

    正则表达式之间切字符串

  22. 22

    使用正则表达式匹配字符串?

  23. 23

    正则表达式区分字符串键

  24. 24

    逗号分隔字符串的正则表达式

  25. 25

    Java正则表达式匹配字符串

  26. 26

    Java字符串与正则表达式的区别?

  27. 27

    Java正则表达式截断字符串

  28. 28

    拆分字符串,不带正则表达式

  29. 29

    正则表达式分割字符串

热门标签

归档