匹配没有两个单词的行
我想知道如何匹配没有两个单词的行吗?
例如,我想匹配一条没有Chapter
和Part
。 所以这两条线都不匹配:
("Chapter 2 The Economic Problem 31" "#74")
("Part 2 How Markets Work 51" "#94")
而这是一场比赛
("Scatter Diagrams 21" "#64")
我的python风格的正则表达式就像(?<!(Chapter|Part)).*?n
。 我知道这是不对的,并会感谢你的帮助。
尝试这个:
^(?!.*(Chapter|Part)).*
@ MRAB的解决方案将起作用,但这里有另一种选择:
(?m)^(?:(?!b(?:Chapter|Part)b).)*$
这个.
在预先检查它不是Chapter
或Part
的Chapter
一个字符后,一次匹配一个字符。 单词边界( b
)确保它不会错误地匹配较长单词的一部分,如Partition
。
^
和$
是开始和结束锚; 他们确保你匹配整条线。 $
比n
更好,因为它也匹配最后一行的末尾,最后不一定有换行符。 (?m)
开始修改锚的含义; 没有这一点,他们只在整个输入的开始和结束处匹配,而不是单独的行。