Php 匹配正则表达式中的字符序列
我想匹配字符串中的字母序列。例如,如果我有字母tbe,我想匹配所有以字母T开头并包含字母B和E的字符串至少一次。第二个字母必须出现在第三个字母之前,字母之间可能有无限多个字符 也就是说,字母tbe将与字符串匹配 表,麻烦和可怕的,但不是Teb 我试图用php编写代码,使用Php 匹配正则表达式中的字符序列,php,regex,Php,Regex,我想匹配字符串中的字母序列。例如,如果我有字母tbe,我想匹配所有以字母T开头并包含字母B和E的字符串至少一次。第二个字母必须出现在第三个字母之前,字母之间可能有无限多个字符 也就是说,字母tbe将与字符串匹配 表,麻烦和可怕的,但不是Teb 我试图用php编写代码,使用 $A = 'T'; $B = 'B'; $C = 'E'; $matches = preg_grep('/^'.$A.'.+'.$B.'.+'.$C.'/', $words); 其中单词是包含单词列表的数组。按照我的算法,
$A = 'T';
$B = 'B';
$C = 'E';
$matches = preg_grep('/^'.$A.'.+'.$B.'.+'.$C.'/', $words);
其中单词是包含单词列表的数组。按照我的算法,我无法找到没有字母在$A$B或$C之间的单词
如何使用正则表达式解决此问题?您无法找到$A$B或$C之间没有字母的单词的原因是因为您使用的是
+
,它试图在$A$B或$C之间至少匹配一个字符
使用
*
而不是+
可怕的
应该不匹配。e出现在B之前,我想在这种情况下匹配。重要的是e至少在b之后出现一次。它是否出现在前面并不重要。您还应该使正则表达式不区分大小写,以匹配Table之类的词(/^t[^E]*B.*E$/i
)