如何匹配不包含单词的行

我想知道如何使用Python风格的正则expression式匹配不包含特定单词的行(只要使用正则expression式,不涉及Python函数)?

例:

PART ONE OVERVIEW 1 Chapter 1 Introduction 3 

我想匹配不包含单词“PART”的行吗?

感谢致敬!

这应该工作:

 /^((?!PART).)*$/ 

如果你只是想把它排除在行首(我知道你没有,但只是FYI),你可以使用这个:

 /^(?!PART)/ 

编辑(通过请求):为什么这个模式有效

(?!...)语法是一个负面的预测 ,我总是很难解释。 基本上,这意味着“以下任何一点都不能与正则expression式/PART/匹配”。 我所链接的网站比我所能解释的要好得多,但是我会尽力解决这个问题:

 ^ #Start matching from the beginning of the string. (?!PART) #This position must not be followed by the string "PART". . #Matches any character except line breaks (it will include those in single-line mode). $ #Match all the way until the end of the string. 

((?!xxx).)*成语可能最难理解。 正如我们所看到的, (?!PART)看着前面的string,并说接下来的任何东西都不能匹配子模式/PART/ 。 所以我们在做什么((?!xxx).)*是逐字逐字地处理string,并将规则应用于所有的字符。 每个angular色都可以是任何东西,但是如果你把那个angular色和其后的几个angular色都拿走,最好不要把PART这个单词拿出来。

^$锚在那里要求规则应用于整个string,从头到尾。 没有这些锚点的话,任何不以PART开头的string都是一个匹配。 即使PART本身也会有匹配,因为(例如)字母A没有紧跟在确切的stringPART之后

既然我们有^$ ,如果PART在string中的任何位置,其中一个字符就会匹配(?=PART). 整体比赛将失败。 希望这是足够清楚的有用的。