正则表达式仅在一个单词不存在时才查找X个单词

时间:2018-08-11 13:10:02

标签: regex webstorm

我正在尝试进行一些代码重构,并且在做很多事情时,我正在使用WebStorm的正则表达式在文件中查找以查看哪些文件仍需要重构。

我知道这个(?:^|(?=[^']).\b)(this.user|this.isVatRegistered|showStatsInNet)\b将显示所有带有其中一部分代码的文件。

根据这篇文章:Match string that doesn't contain a specific word ^(?!.*UserMixin).*$应该做出负面的展望,以便仅在该词不存在时才能匹配。

我的问题是我不知道如何组合它们。有人可以提供一些指导吗?

我尝试像这样(?:^|(?=[^']).\b)(?!.*UserMixin)(this.user|this.isVatRegistered|showStatsInNet)\b进行合并,但无济于事。

TL; DR 仅当不存在另一个单词时,如何匹配X个单词?

1 个答案:

答案 0 :(得分:1)

您必须先使用负前瞻,然后尝试匹配那些子字符串:

\A(?![\d\D]*?UserMixin)[\d\D]*?\b(?:this\.(?:user|isVatRegistered)|showStatsInNet)\b

这是很耗时的,因为有两次[\d\D]*?出现将光标逐个字符移动到文件内容的末尾。