假设我有一个包含以下字符串的行的文件:
...cat dog lorem ipsum...
...cat lizard ...
...cat bird ...
...cat dog ...
我想编写一个与cat
不是后跟dog
的行匹配的正则表达式:
...cat lizard ...
...cat bird ...
我该怎么做?
答案 0 :(得分:10)
通过跟随@!
跟踪原子的反向匹配。在这种情况下,我们想要匹配的原子是与字符串dog
匹配的捕获组:
/\vcat (dog)@!
细分:
\v
激活very magic解析模式(dog)
匹配字符串dog
并将其放入捕获组1 @!
会反转原子(dog)
,以便在dog
不存在时 这匹配cat
(和尾随空格)后面没有dog
的实例。