Использование RegEx для сравнения двух строк для сгруппированных различий в PHP - PullRequest
1 голос
/ 17 апреля 2011

Итак, у меня есть две строки, и я хочу сравнить и вернуть различия. Я не думаю, что могу использовать простой preg_match (), поскольку он возвращает массив всех различий.

У меня небольшая проблема с объяснением, но я надеюсь, что следующий пример прояснит это:

Итак, у меня есть

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

Я хочу, чтобы возвращение было чем-то похожим на:

String2: 2 ==> DA

В основном я пытаюсь изучить взаимосвязь между положением B в String1 и DA в String 2

Любое направление будет очень признателен, спасибо!

Ответы [ 2 ]

1 голос
/ 17 апреля 2011

На самом деле, регулярное выражение не сделает этого за вас.Вы можете прочитать, как diff работает на http://en.wikipedia.org/wiki/Diff#Algorithm (это то, что вы хотите).Вы можете создать функцию или класс, которые выполняют простые diff s, используя эти алгоритмы.

- редактируйте 1 Хороший пункт из Мэтта Болла: Выделите разницу между двумя строками в PHP

0 голосов
/ 16 июня 2011
$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>";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...