我试图删除不是abc并且不以abcxx或abcyy开头的句子中的每个'abc' .
所以:
狗abc cat abcxx abcdfxx abcee abcyyli abcb
成为:
dog abc cat abcxx abc dfxx abc ee abcyyli abc b
它的意思是:
狗abc cat abcxx dfxx ee abcyyli b
我在尝试这样的事情:
var text = "dog abc cat abcxx abcdfxx abcee abcyyli abcb";
console.log(
text.replace(/(^((?:abc(?!xx)(?!yy)).*)$)/g, '')
);Run Code Online (Sandbox Code Playgroud)
如果我在每个单词上运行它,它知道检测有问题的单词,并删除所有单词(而不是仅删除'abc').
您可以使用三个前瞻,两个否定(不xx,不yy)和一个正(需要abc后跟一个字符)来简化它:
const text = "dog abc cat abcxx abcdfxx abcee abcyyli abcb";
console.log(
text.replace(/\babc(?!xx)(?!yy)(?=\w)/g, '')
)Run Code Online (Sandbox Code Playgroud)