0

我想匹配字符串中的一系列字母。例如,如果我有字母 TBEI 想要匹配所有以字母 T 开头并包含字母 B 和 E 至少一次的字符串。第二个字母必须出现在第三个之前,并且字母之间可能有无数个字符。

也就是说,字母 TBE 将匹配字符串 Table、Trouble 和 Terrible 但不匹配 Teb。

我正在尝试通过使用在 php 中对此进行编码

$A = 'T';
$B = 'B';
$C = 'E';

$matches = preg_grep('/^'.$A.'.+'.$B.'.+'.$C.'/', $words);

其中 words 是一个包含单词列表的数组。以我的算法工作,但我无法找到 $A $B 或 $C 之间没有字母的单词。

我将如何使用正则表达式来解决这个问题?

4

1 回答 1

1

您无法找到 $A $B 或 $C 之间没有字母的单词的原因是因为您正在使用.+它试图匹配 $A $B 或 $C 之间的至少 1 个字符。

使用.*代替.+

于 2013-02-02T17:12:39.553 回答