【发布时间】:2016-04-25 10:43:47
【问题描述】:
我需要一个匹配所有出现的两个引号 ('') 的正则表达式,而不是前面的左括号 (()。我对括号做了一个否定的前瞻,然后是一个引号。但是为什么这不起作用:
/(?!\()''/g
例如这个字符串
(''test''test
它应该匹配第二个匹配项,但不匹配第一个匹配项,但它匹配两者。
当我使用完全相同的解决方案但检查新行而不是括号时,它可以正常工作:
/(?!^)''/g
用这个字符串:
''test''test
它只匹配第二次出现。
经过测试here
【问题讨论】:
-
您需要的最终结果是什么?只是匹配?还是替换?
-
\b''...... -
@WiktorStribizew 替换
-
"(''test''test".replace(/(^|[^('])''(?!')/g, "$1bar") -
@AvinashRaj Your regex 不会匹配连续的双撇号。
标签: javascript regex lookahead