匹配正则表达式中的字符序列

时间:2013-02-02 17:07:41

标签: php regex

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

这是字母T B E将匹配字符串 表,麻烦和可怕但不是Teb。

我正在尝试使用

在php中编写代码
$A = 'T';
$B = 'B';
$C = 'E';

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

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

我如何使用正则表达式来修复此问题?

1 个答案:

答案 0 :(得分:1)

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

使用.*代替.+