我想匹配字符串中的一系列字母。例如,如果我有字母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之间没有字母的单词。
我如何使用正则表达式来修复此问题?
答案 0 :(得分:1)
您无法找到$ A $ B或$ C之间没有字母的单词的原因是因为您正在使用.+
尝试匹配$ A $ B之间的至少1个字符或$ C
使用.*
代替.+