我试图('
用(\'
和')
替换它 我的尝试很少,因为我对RegExp\')
不满意。
我尝试的是myText.replace(/\(\'/g, "(\')");
和myText.replace(/\'\)/g, "\')");
我试图('
用(\'
和')
替换它 我的尝试很少,因为我对RegExp\')
不满意。
我尝试的是myText.replace(/\(\'/g, "(\')");
和myText.replace(/\'\)/g, "\')");
您可以在没有正则表达式的情况下在一行中执行此操作:
myText = myText.split("('").join("(\\'").split("')").join("\\')");
问题不是你的正则表达式,而是你的替换。您需要转义反斜杠,否则它(不必要地)转义'
:
myText = myText.replace(/\('/g, "(\\'");
myText = myText.replace(/'\)/g, "\\')");
使用一些更高级的技术(即捕获组和前瞻),您可以将它们组合成一个正则表达式:
myText = myText.replace(/(\()'|'(?=\))/g, "$1\\'");
正则表达式匹配('
或者'
如果它后跟)
(实际上不匹配)。同时,我们“捕获”(
它是否存在。$1
如果被捕获,替换字符串中的 in 会将其放置(
在原位,然后简单地写出\'
. 后面就不用写了)
。因为我们使用了前瞻,所以它从来不是比赛的一部分。