Javascript Regex-错误地选择其他字符

Javascript Regex-错误地选择其他字符,javascript,regex,Javascript,Regex,对于上面的JavaScript正则表达式,它意味着只匹配“如果没有\”。这很好,但它选择了一个字符太多 因此,如果我有字符串A“B,它正在选择A”,但应该只选择” 如果我有一个\“B-它没有选择任何东西(这是正确的) 但如果我有一个“B,它应该只选择” 您可以使用它并替换为$1/”。因为javascript没有lookback,所以您必须用$1替换在“之前捕获的任何内容。此单个字符由[^\\]捕获 您可以使用它并替换为$1/”。因为javascript没有lookback,所以您必须用$1替换

对于上面的JavaScript正则表达式,它意味着只匹配“如果没有\”。这很好,但它选择了一个字符太多

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

如果我有一个\“B-它没有选择任何东西(这是正确的)

但如果我有一个“B,它应该只选择”

您可以使用它并替换为
$1/”
。因为javascript没有lookback,所以您必须用
$1
替换在
之前捕获的任何内容。此单个字符由
[^\\]
捕获

您可以使用它并替换为
$1/”
。因为javascript没有lookback,所以您必须用
$1
替换在
之前捕获的任何内容。此单个字符由
[^\\]
捕获

([^\\])
捕获一个不是反斜杠的字符

您可以简单地将此组设置为非捕获组:

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

var result = str.replace(re, subst);
然后您可以将引号括在一个组中:

/(?:^|[^\\])"/g
现在您的
在匹配组1中结束。

([^\\])
捕获一个不是反斜杠的字符

您可以简单地将此组设置为非捕获组:

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

var result = str.replace(re, subst);
然后您可以将引号括在一个组中:

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

现在您的
在匹配组1中结束。

如果匹配,我将用/”替换它。
[^\\]
将捕获1个字符您试图实现什么?我正在编写一个脚本,它将转义所有双引号,除非它们已经转义…如果匹配,我将用/”替换它。
[^\\\]
将捕获1个字符您想要实现什么?我正在编写一个脚本,它将转义所有双引号,除非它们已经转义。。。
/(?:^|[^\\])(")/g