快捷导航

怎么用正则表达式找出两个字符串的差异

比如str1="你好,我是javascript"str2="我是php"然后用正则表达式判断差异,不存在的用横斜划掉,改变的更换颜色,这种怎么写

免责声明:本内容仅代表回答者见解不代表本站观点,请谨慎对待。

版权声明:作者保留权利,不代表本站立场。

回复

使用道具 举报

参与会员2

error_reporting(E_ALL&~E_NOTICE);//关闭notice报错$a="你好,我是javascript";$b="你好,我是php";$diff=diffStr($a,$b);echo"";print_r($diff);/*打印结果如下:Array([0]=>Array([s1]=>j[s2]=>p)[1]=>Array([s1]=>a[s2]=>h)[2]=>Array([s1]=>v[s2]=>p)[3]=>Array([s1]=>a)[4]=>Array([s1]=>s)[5]=>Array([s1]=>c)[6]=>Array([s1]=>r)[7]=>Array([s1]=>i)[8]=>Array([s1]=>p)[9]=>Array([s1]=>t))*//**比较字符串不同的字符*@参数:$str1:第一个字符串,$str2:第二个字符串*@返回值:不同字符串的数组,*/functiondiffStr($str1,$str2){preg_match_all("/./u",$str1,$arr1);preg_match_all("/./u",$str2,$arr2);$sArr1=$arr1[0];$sArr2=$arr2[0];$num1=count($sArr1);$num2=count($sArr2);$aNew=array();if($num1>$num2){foreach($sArr1as$k=>$val){if($num2>$k&&$val!=$sArr2[$k]){$aNew[]=array('s1'=>$val,'s2'=>$sArr2[$k]);}elseif($num2$val);}}}elseif($num1$val){if($num1>$k&&$val!=$sArr1[$k]){$aNew[]=array('s1'=>$sArr1[$k],'s2'=>$val);}elseif($num1$val);}}}elseif($num1==$num2){foreach($sArr1as$k=>$val){if($val!=$sArr2[$k]){$aNew[]=array('s1'=>$val,'s2'=>$sArr2[$k]);}}}return$aNew;}
回复

使用道具 举报

字符串转数组,循环查找相同的然后打标记就搞定
回复

使用道具 举报

可能感兴趣的问答

发新帖
  • 微信访问
  • 手机APP