/(^|[^\\])"/g
使用上面的JavaScript正则表达式,它只是匹配“如果没有\”。这样可以正常工作但是选择的字符太多了。
所以如果我有字符串A“B,它选择A”,但只应选择“。
如果我有A \“B - 它没有选择任何东西(这是正确的)。
但如果我有A“B,它应该只选择”。
答案 0 :(得分:1)
(^|[^\\])"
你可以使用它并用$1/"
替换。因为javascript没有lookbehind,你必须用$1
替换"
之前捕获的任何东西。这个单个字符被捕获[^\\]
var re = /(^|[^\\])"/g;
var str = 'A\"B\nA"B,\n';
var subst = '$1/"';
var result = str.replace(re, subst);
答案 1 :(得分:1)
([^\\])
捕获一个不是反斜杠的字符。
您可以简单地将此组设为非捕获组:
/(?:^|[^\\])"/g
然后你可以将引号括在一个组中:
/(?:^|[^\\])(")/g
现在,您的"
最终在匹配组1中。