包含Notepad ++中所有特定字母的正则表达式

时间:2015-11-20 12:34:47

标签: regex notepad++

我有一个字典列表作为文本文件,并希望选择包含特定字符列表的所有成员的某些单词。使用文本编辑器 notepad ++ 在字典列表中应用以下正则表达式。我在notepad ++上尝试了以下正则表达式语句;

[BLT]+

但是,这并不匹配方括号中的所有字母,而是方括号中的任何字母。然后我也尝试了以下正则表达式,包括单词边界;

\b[BLT]+

此表达式再次匹配所有单词的出现,包括任何,但不包括方括号中列出的所有字母。

期望的行为

假设,字典包含如下列表;

AL
BAL
BAK
LABAT
TAL
LAT
BALAT
LA
AB
LATAB
TAB

我需要的是一个包含全部字母的表达式' B' L'' T' (不是任何!),因此预期行为应如下所示;

LABAT
BALAT
LATAB

此问题的最极简通用 正则表达式是什么?

1 个答案:

答案 0 :(得分:5)

您可以使用lookaheads

^(?=.*B)(?=.*L)(?=.*T).+$

作为更一般情况的示例,针对至少1 B,2 L和3 T s的优化正则表达式:

^(?=[^B\n]*B)(?=(?:[^L\n]*L){2})(?=(?:[^T\n]*T){3}).+$