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

Regular Expression That Contains All Of The Specific Letters in Notepad++

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

[BLT]+

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

\b[BLT]+

并且此表达式再次匹配单词的所有出现,包括 any,但不匹配中间列出的字母的 all方括号。

期望的行为

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

AL
BAL
BAK
LABAT
TAL
LAT
BALAT
LA
AB
LATAB
TAB

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

LABAT
BALAT
LATAB

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

您可以使用 lookaheads:

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

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

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