使用负向先行断言
例如,如果我们想要匹配一个句子中所有不是“dog”的单词,可以使用以下正则表达式:
/ \b(?!dog\b)\w+\b /
这里用到了负向先行断言((?!dog\b)),表示匹配词以“dog”结尾的单词之外的任何单词。负向先行断言的语法是“(?!pattern)”,其中“pattern”是我们不希望匹配的内容。在上述例子中,“\b”表示词边界,“\w+”表示匹配一个或多个单词字符,并以“\b”结束。
下面是一个示例代码,使用此正则表达式过滤出一个字符串中不包含“dog”的单词:
const str = "The quick brown fox jumps over the lazy dog"; const regex = /\b(?!dog\b)\w+\b/g; const filteredStr = str.match(regex).join(" "); console.log(filteredStr); // "The quick brown fox jumps over the lazy"