Javascript正则表达式替换为条件
我想在JavaScript中使用正则表达式来替换多行文本中的一些单词。 来源: 多卡(1)20岁。多卡,(2)索尔是我的朋友。Sole告诉我“Doka(3)是个不错的gỉrl!Javascript正则表达式替换为条件,javascript,regex,Javascript,Regex,我想在JavaScript中使用正则表达式来替换多行文本中的一些单词。 来源: 多卡(1)20岁。多卡,(2)索尔是我的朋友。Sole告诉我“Doka(3)是个不错的gỉrl! 多卡:(4)哈马学校的学生。 我昨天遇到了多卡 按预期更换的结果: 鲍勃(1)20岁了
多卡:(4)哈马学校的学生。
我昨天遇到了多卡 按预期更换的结果: 鲍勃(1)20岁了<鲍勃是我的朋友。Sole告诉我“Doka(3)是个不错的gỉrl!
多卡:(4)哈马学校的学生。
我昨天遇到了鲍勃 在本例中,我想用Bob替换Doka(1,2,5)。替换匹配项的条件包括:
如何实现这一点?您可以使用此正则表达式和代码,前提是任何双引号都已正确关闭,即双引号出现的次数为偶数:
var str=`Doka(1)已经20岁了。多卡,(2)索尔是我的朋友。Sole告诉我“Doka(3)是个不错的gỉrl!”
多卡:(4)哈马学校的学生。
我昨天遇到了多卡;
str=str.replace(/([^\n\r])Doka | Doka(?!:)(?=([^“]*”[^“]*”[^“]*”*)*[^“]*$)/g,$2Bob');
console.log(str);
您可以使用此正则表达式和代码,前提是任何双引号都正确关闭,即双引号出现的次数为偶数:
var str=`Doka(1)已经20岁了。Doka,(2)Sole是我的朋友。Sole告诉我“Doka(3)是一个很好的gỉrl!"
多卡:(4)哈马学校的学生。
我昨天遇到了多卡;
str=str.replace(/([^\n\r])Doka | Doka(?!:)(?=([^“]*”[^“]*”[^“]*”*)*[^“]*$)/g,$2Bob');
console.log(str)代码>@qxz,我已经添加了一些解释。前面的字符不是点。如何解决这个问题?如果单词前有一个点,你想不替换吗?这与前面不能有换行符的要求完全相同,因此只需将该字符添加到列表中,如[^\n\r.]
。你懂这个符号吗<代码>[^…]
?您可以阅读有关正则表达式的内容。@qxz,我已经添加了一些解释。前面的字符不是点。如何解决这个问题?如果单词前有一个点,你想不替换吗?这与前面不能有换行符的要求完全相同,因此只需将该字符添加到列表中,如[^\n\r.]
。你懂这个符号吗<代码>[^…]?您可以阅读有关正则表达式的内容。