1

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

  • 不要出现在行首或行首的空格之后
  • 不要出现在行尾或行尾的空白之前

我想我需要使用lookbehind和lookahead。

所以匹配 " in

zfgjhsgaf jhsa gd " gjhygf" hgf

但不在

"gjhgjkgjhgjhgkk"

      "dfsdfsdf"   
4

5 回答 5

2

对于 Eclipse,尝试通过这个正则表达式查找:

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

并替换为:

\"
于 2011-05-19T09:06:26.723 回答
0

这个应该工作

^\s*[^"].*".*[^"]\s*$
于 2011-05-19T09:09:33.443 回答
0

在这里看到这个

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

在正则表达式

它不适用于行首之后的空格。正如 BoltClock 所提到的,只有少数引擎(我只知道 .net)支持可变长度后视。

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

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

perldoc.perl.org/perlretut.html#Looking-ahead-and-looking-behind中有一个很好的前瞻/后视文档

于 2011-05-19T09:19:20.913 回答
0
^\s*"?.*\S.*(").*?\S.*?"?\s*$

假设这是您想要找到的东西,它支持匹配“foo”bar”。

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

于 2011-05-19T09:30:32.523 回答
0

我认为 whis re 的表达能力很强:

^\s*\S+.*innertext.*\S+\s*$
于 2011-05-19T10:07:11.493 回答