1

如何在 javascript 中替换部分 regx 匹配项。

Ex: fn_eq("col","va  AND l") AND fn_gt("col","v AND a ")

我需要用其他字符串替换由表达式分隔的字符串比如|| .

我可以用这个正则表达式匹配上面的表达式:
(\w+\((".*?",".*?")\))\s+(AND)\s+(\w+\((".*?",".*?")\))

如何替换 AND 由表达式(第二个捕获组)分隔,留下其余部分。

任何帮助将不胜感激。

4

1 回答 1

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");

(顺便说一下,||通常表示“或”逻辑运算符,而不是“和”。)

专业提示:尽可能避免使用惰性量词。而不是.*?,使用[^"]*. 它快得多。

于 2012-08-24T14:16:57.077 回答