Notepad ++正则表达式查找包含str1而不包含str2

时间:2014-06-12 16:47:56

标签: regex notepad++

1. The CAT goes up and down the ROAD.
2. The CAT goes up and down the CITY.
3. The ROAD goes up and down the CAT.

正则表达式:(CAT)(.*?)(ROAD)会找到包含CAT和ROAD

的行

现在我需要找到包含CAT而不包含ROAD的行。

尝试(CAT)(.*?)(?!ROAD),但这似乎不正确。

2 个答案:

答案 0 :(得分:6)

您可以一起使用消极和积极的前瞻。检测具有CAT的行是否为正,否定否定ROAD。

^(?=.*CAT)(?!.*ROAD)(.*)

我还在最后添加.*来选择这些行。

答案 1 :(得分:2)

要仅在不包含CAT的行上选择ROAD,您可以使用否定前瞻和\K来重置匹配:

^(?!.*ROAD).*\KCAT

regex101 demo