【发布时间】:2011-05-02 00:25:27
【问题描述】:
我确定这已经被问及回答了,但老实说,在搜索了相当多的内容并阅读了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
【问题讨论】:
标签: php regex string string-comparison anagram