在Notepad ++中使用正则表达式的多字匹配

时间:2017-05-04 15:32:32

标签: regex notepad++

好的,我在输入标题后检查了建议的页面,但仍无法找到答案。

我正在使用Notepad ++,它似乎拥有自己的正则表达式语法版本,但我首先不熟悉正则表达式。但是我真的想在一个非常长的日志文件中使用一个搜索类型。

我需要做的是找到两个或多个单词不是a或'|'的行但是和。查询中的所有单词必须存在于每一行中。因此,如果有两个我匹配“(猫)(狗)”它将返回所有行,其中猫和狗都出现在行中但不是只有猫或只有狗出现的行。

同样在三个元素搜索“(cat)(dog)(仓鼠)”如果它发现猫和狗在一起但没有仓鼠它不会返回那条线但是如果它发现所有三个存在它会。

有人告诉我,在这些之间放一个空格会起到'和'的作用,但这似乎不起作用。

我在Notepad ++ v7.3.3

1 个答案:

答案 0 :(得分:2)

在正则表达式中,空格被视为字面意思,因此“猫狗仓鼠”是catdog的串联和hamster

在上面的评论中,建议使用以下正则表达式:

.*cat.*dog.*hamster.*

其中.*表示“0个或更多其他字符”。但是使用这种模式,词语的顺序很重要。

如果您不希望订单重要,可以使用以下表达式:

^(?=.*word1)(?=.*word2)(?=.*word3)

表示行^)的开头必须遵循((?=)word1word2word3,在任意数量的其他角色之后。