perl正则表达式中?=的功能是在替换的时候不对其影响的字符串产生更改,例如,替换后面跟着一个/多个数字的abc为xyz。
C:\Documents and Settings\Administrator>perl
$string1="abcdefgabc12";
($string2= $string1) =~ s/abc(?=\d+)/xyz/;
print "$string2\n";
print "$string1\n";
^D
abcdefgxyz12
abcdefgabc12
另外,稍微提一下,($string2= $string1)是为了不想在一个单独的语句中进行拷贝操作,等号前是更改后的字符串,之后的保留不变。
阅读(536) | 评论(0) | 转发(0) |