【发布时间】:2022-12-10 12:45:32
【问题描述】:
目标是匹配 / and /gu 和 / or /gu 并将它们替换为 ' AND ' 和 ' OR ' 但如果它们在引号内,则不应进行替换。
例如,如果字符串是term:"cat and dog" and keyword:view or keyword:impression,则应将其替换为term:"cat and dog" AND keyword:view OR keyword:impression。
事实证明可以只使用 REGEX 来解决这个问题。
regex = /\b(and|or)\b(?=(?:[^"]*"[^"]*")*[^"]*$)/;
regex.test("cat and dog") // true
regex.test("cat or dog") // true
regex.test("\"cat and dog\"") // false
regex.test("\"cat and dog\" or \"cat or dog\"") // true
regex.test("\"cat and dog\" plus \"cat or dog\"") // false
【问题讨论】:
标签: javascript regex