使用RegEx比较PHP中分组差异的两个字符串

时间:2011-04-16 21:31:19

标签: php regex string expression

所以我有两个字符串,我想比较并返回差异。我不认为我可以使用简单的preg_match(),因为它返回所有差异的数组。

我在解释自己方面遇到了一些麻烦,但我希望以下示例能够解决这个问题:

所以我有

String 1: AA **B** AA
String 2: AA **DA** AA

我希望返回类似于:

String2: 2 ==> DA

基本上我正在尝试检查String1中 B 的位置与String 2中 DA 的位置之间的关系

任何方向都会非常感谢,谢谢!

2 个答案:

答案 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>";