2011-04-20 51 views
1

我想查找两个字符串之间的差异。例如,如果查找两个字符串之间的多个区别

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

然后,我应该能够得到名称 - 年龄和ABC - xyz的差异。

我想我可以使用Levenshtein距离,但无法弄清楚。任何帮助是极大的赞赏。

回答

2
<?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); 
?> 
+0

这将无法正常工作,因为第一个区别在长度上不匹配:'name:4'和'age:3' – froeschli 2011-04-21 12:24:36