所以我有两个字符串,我想比较并返回差异。我不认为我可以使用简单的preg_match(),因为它返回所有差异的数组。
我在解释自己方面遇到了一些麻烦,但我希望以下示例能够解决这个问题:
所以我有
String 1: AA **B** AA
String 2: AA **DA** AA
我希望返回类似于:
String2: 2 ==> DA
基本上我正在尝试检查String1中 B 的位置与String 2中 DA 的位置之间的关系
任何方向都会非常感谢,谢谢!
答案 0 :(得分:1)
实际上,正则表达式不会为你做这件事。您可以阅读diff
http://en.wikipedia.org/wiki/Diff#Algorithm的工作原理(这就是您想要的)。您可以使用这些算法创建一个简单diff
的函数或类。
- 编辑1 Matt Ball的好点:Highlight the difference between two strings in PHP
答案 1 :(得分:0)
$stringA = "hello world hello world helloo world";
$stringB = "hello php hello php hello php";
echo "string 1---->".$stringA."<br>";
echo "string 2---->".$stringB."<br>";
$array1 = explode(' ', $stringA);
$array2 = explode(' ', $stringB);
$result = array_diff($array2, $array1);
$zem= implode(' ',$result);
if (!empty($zem)) {
echo "string diffrence---> ".$zem."<br>";
} else {
echo "string diffrence--->both strings are same <br>";
}
$a = count(explode(' ', $stringA));
$b= count(explode(" ", $zem));
similar_text($stringA, $stringB , $p);
echo " similarity between the stirng is Percent:".$p."% <br>";