我确信这已经被问到并得到了回答,但老实说,在搜索了相当多的内容并阅读了Regex Tutorial之后,我找不到我的答案。我要做的是匹配一个与另一个字符串具有相同字符和长度的字符串。例如,字符串"abcde"将匹配"edcba"但不会匹配"abcdf"或"aabbc"或"abc"。
这是我的测试代码,最接近我想出的使用字符类的代码,但我不知道如何让正则表达式从匹配开始时基本上遍历类中的每个字符细绳:
$string = 'abcde';
$array = array('edcba','eeeee','fghij','fedcba','qqq','cbaed','cba');
foreach ($array as $match)
{
if (preg_match("/[$string]/i",$match))
echo "TRUE -> $match";
else
echo "FALSE -> $match";
}
这给出了结果:
TRUE -> edcba
TRUE -> eeeee
FALSE -> fghij
TRUE -> fedcba
FALSE -> qqq
TRUE -> cbaed
TRUE -> cba
当我真正想要的是:
TRUE -> edcba
FALSE -> eeeee
FALSE -> fghij
FALSE -> fedcba
FALSE -> qqq
TRUE -> cbaed
FALSE -> cba