我正在尝试删除不是 abc 且不以 abcxx abcyy 开头的句子中的每个单词'abc'。

所以:

狗abc猫abcxx abcdfxx abcee abcyyli abcb

成为:

狗abc猫abcxx abc dfxx abc ee abcyyli abc b

它的意思是:

狗abc猫abcxx dfxx ee abcyyli b

我正在尝试类似的东西:

var text = "dog abc cat abcxx abcdfxx abcee abcyyli abcb";
console.log(
  text.replace(/(^((?:abc(?!xx)(?!yy)).*)$)/g, '')
);


如果我在每个单词上运行它,它就会检测出有问题的单词,
并删除所有单词(而不是仅删除“abc”)。

最佳答案

您可以通过三个前瞻来简化它,两个负号(无xx,没有yy)和一个正号(要求abc后跟一个字符):

const text = "dog abc cat abcxx abcdfxx abcee abcyyli abcb";
console.log(
  text.replace(/\babc(?!xx)(?!yy)(?=\w)/g, '')
)

09-26 03:19