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

发布于 2024-11-01 23:49:37 字数 382 浏览 1 评论 0原文

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

我在解释自己时遇到了一些麻烦,但我希望下面的示例可以澄清它:

所以我希望

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

返回类似于:

String2: 2 ==> DA

基本上我正在尝试检查 B< 位置之间的关系String1 中的 /strong> 和 String 2 中的 DA

任何类型的指示将不胜感激,谢谢!

So I have two strings, and I want to compare and return the differences. I don't think I can use a simple preg_match() since it returns an array of all differences.

I'm having a little trouble explaining myself but I hope the following example clears it up:

So I have

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

I want the return to be something similar to:

String2: 2 ==> DA

Basically I'm trying to examine the relationship between the position of B in String1 and DA in String 2

Any kind of direction would be really appreciated, Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

无声情话 2024-11-08 23:49:37

事实上,正则表达式不会为你做这件事。您可以在 http://en.wikipedia 上了解 diff 的工作原理。 org/wiki/Diff#Algorithm (这就是你想要的)。您可以创建一个函数或类,使用这些算法执行简单的差异。

--编辑1
Matt Ball 的好观点:突出显示 PHP 中两个字符串之间的差异

Actually, regex won't do this for you. You can read how diff works on http://en.wikipedia.org/wiki/Diff#Algorithm (that's what you want). You can create a function or class that does simple diffs using those algoritms.

-- edit 1
Good point from Matt Ball: Highlight the difference between two strings in PHP

流年已逝 2024-11-08 23:49:37
$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>";
$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>";
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文