compare two strings and display the common 比较两个字段获取相同部分
用于匹配两个string的match部分,是使用 m//进行的,其中(.+) \1部分就是用来匹配相关字段的。使用\0 null字符分开。 如果需要匹配.+(.+)$,要在中间加?变成 .+?(.+)$; 如果需要匹配^(.+).+, 则不需要加?;
##匹配尾段
$first="abcdaaaaaa";
$second="1234aaaaa";
"$first\0$second" =~ m/^.+?(.+)\0.+?\1$/;
print $1 ;
##匹配开头
$first="aaaaaaABCD";
$second="aaaba12345";
"$first\0$second" =~ m/^(.+).+\0\1.+$/;
print $1 ;
##匹配中间
$first="abcdaaaaaABCD";
$second="1234aaaaaa5678";
"$first\0$second" =~ m/^.+?(.+).+?\0.+?\1.+?$/;
print $1 ;
##应用
print $1 if "$foo\0$bar" =~ m/.*?(.+).*?\0.*?\1.*?/;