Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Design patterns 查找两个字符串之间的多个差异_Design Patterns_Distance_Levenshtein Distance - Fatal编程技术网

Design patterns 查找两个字符串之间的多个差异

Design patterns 查找两个字符串之间的多个差异,design-patterns,distance,levenshtein-distance,Design Patterns,Distance,Levenshtein Distance,我想找出两个字符串之间的差异。例如,如果 line1 = "My name is ABC" line2 = "My age is xyz" 然后我应该能够得到name-age和ABC-xyz的区别 我想我可以用Levenshtein距离,但我想不出来。非常感谢您的帮助。 <?php $line1 = "My name is ABC"; $line2 = "My age is xyz"; $matchlen = strspn($line1, $line2); // remove 1st

我想找出两个字符串之间的差异。例如,如果

line1 = "My name is ABC"
line2 = "My age is xyz"
然后我应该能够得到name-age和ABC-xyz的区别

我想我可以用Levenshtein距离,但我想不出来。非常感谢您的帮助。


<?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);
?>

这将无法正常工作,因为第一个差异在长度上不匹配:
姓名:4
年龄:3