perl regex-如何匹配不以(\ s * // \ s *)开头的foobar

柯南鼓

基本上我想在未注释的行上找到foobar:

// foobar      # do not match me
 foobar        # match me
 otherfoobar   # do not match me

为了匹配注释行,我使用以下命令: ^(\s*//\s*)\bfoobar\b.*$

如何匹配未注释的行?

笔记:

为避免不必要的工作,请将答案限制为“ ^ ... $”。这必须完全在发送给perl进行匹配的字符串中完成。

而且foobar必须与\ bfoobar \ b中的整个匹配

最后,\ bfoobar \ b不应以空格或注释签名开头。

柯南鼓

我认为否定的问题不应过于复杂。

例如说我要拒绝这些行:

"^(\s*//\s*).*(\bfoobar\b).*$"

IE。首先'//'在空白处的任何地方都具有注释签名,然后是包含'foobar'整个单词的所有内容(为清楚起见,包括了方括号)。

否定这个,我们要做:

"^(?!\s*//\s*).*(\bfoobar\b).*$"

我们只是替换(\s*//\s*)(?!\s*//\s*)

这无视任何'//'在开头的空白处带有注释签名的内容,其后是我们的模式。

结果:

  // foobar will not be matched
  // whatever foobar will not be matched
  foobar will be matched
  whatever foobar will be matched
  whateverfoobar will not be matched

注意:您可以通过更改.*之前(\bfoobar...和设置来进一步进行微调

我可以 "^(?!\s*//\s*)\s*(\bfoobar\b).*$"

  foobar will be matched
  whatever foobar will **NOT** be matched

警告:如果您'foobar'用任意字符串替换,例如,'${foobar}'然后尝试上述操作,它将失败。原因是因为您的普通“ foobar”仅由文字字符组成,现在(\bfoobar\b)不匹配。在这种情况下,\b必须将其卸下。

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Perl多行匹配“ something”(以“#\ s”开头)

来自分类Dev

如何在MySQL中选择所有不以s开头的内容

来自分类Dev

匹配不以开头的地方

来自分类Dev

匹配不以&开头的单词

来自分类Dev

RegEx匹配字符串中的非下划线字符,而不以@开头

来自分类Dev

在Perl中-s的含义是什么,它是如何工作的?

来自分类Dev

如何使用Perl在Regex中正确匹配TAB?

来自分类Dev

Perl中的s [] []表示法

来自分类Dev

使用正则表达式匹配不以> \ s *结尾的行

来自分类Dev

Perl和Regex-单行模式匹配

来自分类Dev

匹配表达式不以开头

来自分类Dev

删除不以#开头且与模式匹配的行

来自分类Dev

sed替换不以#开头的匹配行

来自分类Dev

为什么正则表达式中的 ^s$ 不匹配“以 s 开头,以 s 结尾”这样的字符串?

来自分类Dev

如何从字符串开头获取与RegEx的匹配

来自分类Dev

如何在记事本++中匹配所有不以“ xxxx”开头的行

来自分类Dev

sed:如何匹配以单词开头但不以另一个单词结尾的行

来自分类Dev

正则表达式:如何匹配不以前缀列表开头的子字符串

来自分类Dev

R regex列出不以“ AA”或“ BB”开头的文件

来自分类Dev

字符串匹配“ s / \ r \ n / / g”在perl中是什么意思

来自分类Dev

bash regex with shopt -s extglob

来自分类Dev

如何删除以S3开头的S3文件

来自分类Dev

如何删除以S3开头的S3文件

来自分类Dev

仅匹配以'www'或'http(s)://'开头的URL,没有其他匹配项

来自分类Dev

PowerShell Regex匹配字符串的开头

来自分类Dev

How to represent spaces in Perl's DBI properly

来自分类Dev

在perl中使用-e和-s开关

来自分类Dev

Perl的ucfirst()或s /// e的Python等价于什么?

来自分类Dev

perl,具有s ///的怪异行为

Related 相关文章

  1. 1

    Perl多行匹配“ something”(以“#\ s”开头)

  2. 2

    如何在MySQL中选择所有不以s开头的内容

  3. 3

    匹配不以开头的地方

  4. 4

    匹配不以&开头的单词

  5. 5

    RegEx匹配字符串中的非下划线字符,而不以@开头

  6. 6

    在Perl中-s的含义是什么,它是如何工作的?

  7. 7

    如何使用Perl在Regex中正确匹配TAB?

  8. 8

    Perl中的s [] []表示法

  9. 9

    使用正则表达式匹配不以> \ s *结尾的行

  10. 10

    Perl和Regex-单行模式匹配

  11. 11

    匹配表达式不以开头

  12. 12

    删除不以#开头且与模式匹配的行

  13. 13

    sed替换不以#开头的匹配行

  14. 14

    为什么正则表达式中的 ^s$ 不匹配“以 s 开头,以 s 结尾”这样的字符串?

  15. 15

    如何从字符串开头获取与RegEx的匹配

  16. 16

    如何在记事本++中匹配所有不以“ xxxx”开头的行

  17. 17

    sed:如何匹配以单词开头但不以另一个单词结尾的行

  18. 18

    正则表达式:如何匹配不以前缀列表开头的子字符串

  19. 19

    R regex列出不以“ AA”或“ BB”开头的文件

  20. 20

    字符串匹配“ s / \ r \ n / / g”在perl中是什么意思

  21. 21

    bash regex with shopt -s extglob

  22. 22

    如何删除以S3开头的S3文件

  23. 23

    如何删除以S3开头的S3文件

  24. 24

    仅匹配以'www'或'http(s)://'开头的URL,没有其他匹配项

  25. 25

    PowerShell Regex匹配字符串的开头

  26. 26

    How to represent spaces in Perl's DBI properly

  27. 27

    在perl中使用-e和-s开关

  28. 28

    Perl的ucfirst()或s /// e的Python等价于什么?

  29. 29

    perl,具有s ///的怪异行为

热门标签

归档