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

Lev*_*glu 5 regex notepad++

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

[BLT]+
Run Code Online (Sandbox Code Playgroud)

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

\b[BLT]+
Run Code Online (Sandbox Code Playgroud)

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

期望的行为

比方说,字典包含如下列表;

AL
BAL
BAK
LABAT
TAL
LAT
BALAT
LA
AB
LATAB
TAB
Run Code Online (Sandbox Code Playgroud)

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

LABAT
BALAT
LATAB
Run Code Online (Sandbox Code Playgroud)

这个问题的最简约通用 正则表达式是什么?

Wal*_*oss 5

您可以使用前瞻:

^(?=.*B)(?=.*L)(?=.*T).+$
Run Code Online (Sandbox Code Playgroud)

作为更一般情况的示例,优化的正则表达式至少为B1,2 Ls和3 Ts:

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