将2个正则表达式与逻辑"和"结合起来

iht*_*tus 0 regex notepad++

使用Notepad ++我需要找到包含2个关键字(两者)的行.

我已经找到了如何将2个正则表达式与逻辑"或"运算符组合在一起.

例: (searchword1)|(searchword2)

但是我如何与逻辑'和'结合?

尝试&,&& ..没有成功.

输入示例:

The CAT goes up and down the ROAD.
The CAT goes up and down the CITY.
Run Code Online (Sandbox Code Playgroud)

搜索词: CAT & ROAD

预期结果:行1

Lor*_*Dex 6

查找 -> 正则表达式,然后输入

(CAT)(.*?)(ROAD)
Run Code Online (Sandbox Code Playgroud)

  • 并且此答案仅在“CAT”这个词出现在“ROAD”这个词之前才匹配。也就是说,它不会匹配——“在路上是一只猫”。 (3认同)

aca*_*lon 6

如果您正在寻找一个真实的&&操作,其中一行包含任何顺序的单词,那么您将希望匹配以下两行:

CAT在ROAD上下移动.

ROAD在CAT上下移动.(可怜的猫)

在这种情况下,您将要使用:

^(?=.*\bCAT\b)(?=.*\bROAD\b).*$
Run Code Online (Sandbox Code Playgroud)

说明:

  • ^ 起跑线
  • $ 终点线
  • ?= 积极向前看
  • \b字边界.不确定你是否想要这个.如果你想匹配单词的任何部分,请删除这些,例如TheCATgoes up and down theROAD.

(?=)是积极向前看.我们有两个这样的前瞻,一个用于任何东西(*)后跟CAT,一个用于任何东西(*),然后是ROAD.&&两个前瞻之间有一个隐含- 必须满足这两个条件.

阅读这里的外观