正则表达式不匹配行的开头/结尾

时间:2011-05-19 09:04:57

标签: regex eclipse lookbehind

我想要一个正则表达式只匹配“那个

  • 不要出现在行的开头或行开头的空格
  • 之后
  • 不要在一行的末尾或行末的空格之前

我想我需要使用lookbehind和lookahead。

匹配“in

zfgjhsgaf jhsa gd " gjhygf" hgf

但不在

"gjhgjkgjhgjhgkk"

      "dfsdfsdf"   

5 个答案:

答案 0 :(得分:2)

对于Eclipse,请尝试通过此正则表达式进行查找:

(?<!^\s*)"(?!\s*$)

替换为:

\"

答案 1 :(得分:0)

这个应该有效

^\s*[^"].*".*[^"]\s*$

答案 2 :(得分:0)

在此处查看

(?<!^)"(?!\s*$)

at Regexr

它不适用于行开头后的空格。正如BoltClock所提到的,可变长度外观仅由少数引擎支持(我只知道.net)。

如果您使用支持它的正则表达式,则可以使用

(?<!^.*)"(?!\s*$)

perldoc.perl.org/perlretut.html#Looking-ahead-and-looking-behind

中有一个关于前瞻/后退的好文档

答案 3 :(得分:0)

^\s*"?.*\S.*(").*?\S.*?"?\s*$

支持匹配'“foo”bar“',假设您想要找到它。

哦,只有在设置了$ 1时它才匹配

答案 4 :(得分:0)

我觉得你的表现很有意思:

^\s*\S+.*innertext.*\S+\s*$