我想搜索包含某个单词的行,例如book
,并且前面不包含car
。
我尝试这样写:
[?!car].*book
但是它不起作用,因此在这些行中:
this car is a book
this is a book
book car
第一个不匹配,其他两个不匹配。我在做什么错了?
答案 0 :(得分:2)
您在这里
我使用了一个非捕获组来对正则表达式进行一次完整匹配,但是您可以根据需要使用它。
您使用的正则表达式在行中搜索字符集[?!car]
中任何字符的第一个匹配项;这意味着?
和!
被视为单个字符,而不是您原本打算的非捕获组。除非遇到book
,否则后面的字符将被贪婪地捕获。这就是为什么Regex无法为您提供所需结果的原因。