1

我正在尝试编写一个正则表达式来匹配单引号,这可能会被转义。匹配的引号前面应该有偶数个反斜杠(奇数表示引号被转义)。例如,在这五个字符串中:

'quotes should be matched'
\'quotes should NOT be matched\'
\\'quotes should be matched\\'
\\\'quotes should NOT be matched\\\'
\\\\'quotes should be matched\\\\'

这是我拥有的正则表达式:

(?<=[^\\](?:\\\\)*)'

但是,这与上述示例中的任何内容都不匹配。我觉得这很奇怪,因为*从正则表达式中删除 与两个反斜杠匹配的引号,因为它应该:

(?<=[^\\](?:\\\\))'火柴\\'

4

1 回答 1

3

据我所知,不可能只匹配'. 这是因为您不能像 Wiseguy 指出的那样进行动态长度后视。

但是,以下正则表达式将匹配正确的'AND 任何\导致它的 s。不确定这是否有任何用处..

(?<!\\)(?:\\\\)*'

匹配任意数量的\前面没有 a\并且后面跟着 a的 double '

于 2013-03-04T22:26:25.427 回答