Найдите множественные различия между двумя строками

#design-patterns #distance #levenshtein-distance

#шаблоны проектирования #расстояние #левенштейн-расстояние

Вопрос:

Я хочу найти различия между двумя строками. Например, если

 line1 = "My name is ABC"
line2 = "My age is xyz"
  

Тогда я должен быть в состоянии получить различия, которые называются age и ABC — xyz.

Я думаю, что могу использовать расстояние Левенштейна, но не могу понять это. Любая помощь приветствуется.

Ответ №1:

 <?php
$line1 = "My name is ABC";
$line2 = "My age is xyz";

$matchlen = strspn($line1, $line2);

// remove 1st non-matching char
$same = substr($line1, 0, $matchlen - 1);

// include 1st non-matching char
$diff = substr($line2, $matchlen - 1);

printf("Same: [%s]nDiff: [%s]", $same, $diff);
?>
  

Комментарии:

1. Это не будет работать корректно, потому что первое различие не совпадает по длине: name : 4 и age : 3