"wolf AND horse AND NOT mountain goat OR cow AND NOT dog"
我需要匹配“狼”、“马”、“山羊”、“牛”和“狗”。如何过滤掉“AND”、“AND NOT”和“OR”。正则表达式风格是 JavaScript。
提前致谢!
编辑:
我现在明白我来这里的目的并不明显。希望澄清一下:示例字符串是一个搜索查询(完全是虚构的,没有任何意义,但这不是重点)。 “AND”、“AND NOT”和“OR”是查询中可能出现的不同运算符,我需要获取它们之间的内容。
但是也许没有神奇的正则表达式子弹可以解决这个问题,而且我还有其他方法来解决这个问题!但我有兴趣找到一个正则表达式!
split()
与与您要忽略的连接器相匹配的正则表达式一起使用:
const string = "wolf AND horse AND NOT mountain goat OR cow AND NOT dog";
const result = string.split(/\s+(?:AND|OR)(?:\s+NOT)?\s+/);
console.log(result);