/(^|[^\\])"/g


使用上面的JavaScript正则表达式,它只能匹配“如果没有\”。这可以正常工作,但选择的一个字符过多。

因此,如果我有字符串A“ B,它正在选择A”,但应该只选择“”。

如果我有A \“ B-则没有选择任何内容(正确)。

但是如果我有A“ B,则应该只选择”“。

最佳答案

(^|[^\\])"


您可以使用它并用$1/"替换。因为javascript没有向后看,您必须用$1替换"之前捕获的所有内容。[^\\]捕获此单个字符

See demo

var re = /(^|[^\\])"/g;
var str = 'A\"B\nA"B,\n';
var subst = '$1/"';

var result = str.replace(re, subst);

关于javascript - 正则表达式-错误地选择了其他字符,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37677694/

10-13 08:05
查看更多