按条件从字符串的单词中删除后缀

时间:2018-06-05 05:26:43

标签: javascript regex

我试图删除不是 abc 的句子中的每个'abc',而不是以 abcxx abcyy

这样:

dog abc cat abcxx abcdfxx abcee abcyyli abcb

成为:

dog abc cat abcxx abc dfxx abc ee abcyyli abc b'/ p>

这意味着:

dog 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, '')
);

如果我在每个单词上运行它,它知道检测有问题的单词, 并删除所有单词(而不是仅删除'abc'。

1 个答案:

答案 0 :(得分:5)

您可以使用三个前瞻,两个否定(不xx,无yy)和一个正面(需要abc后跟一个字符)来简化它:

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