如何在javascript中替换部分regx匹配。
Ex: fn_eq("col","va AND l") AND fn_gt("col","v AND a ")
我需要将表达式所使用的字符串 AND 替换为其他字符串,例如 || 。
我可以使用此regx与上述表达式匹配:
(\w+\((".*?",".*?")\))\s+(AND)\s+(\w+\((".*?",".*?")\))
如何用表达式(第二个捕获组)替换AND sepreated,剩下的就剩下了。
非常感谢任何帮助。
答案 0 :(得分:2)
不是一个简单的替换为你做的吗?
var string = 'fn_eq("col","va AND l") AND fn_gt("col","v AND a ")',
re = /(\w+\((".*?",".*?")\))\s+(AND)\s+(\w+\((".*?",".*?")\))/;
string = string.replace(re, "$1 || $4");
(顺便说一下,||
通常表示“或”逻辑运算符,而不是“和”。)
专业提示:如果可能,请避免使用惰性量词。而不是.*?
,请使用[^"]*
。 多更快。