有时候你不仅希望找到你想要那些字符串,还想替换掉它们。还记得前面说的匹配符后面的m符号么?现在是使用另一个,s符号(替换,subplace)的时候了。
$string =~ s/apple/apple/i;
上面表达式将$string里所有不用形式的apple统一成全小写的apple. 这里面可以用变量:
$string =~ s/$string1/$string2/i;
$string里所有匹配$string1的地方都会被替换成$string2。但是,要注意,除非你能确保$string1里面不含任何特殊符号(+-*^$.()[]等)或者你需要的就是那些符号,最好在调用上面式子之前处理一下$string1
$string1 = quotemeta($string1);
quotemeta()的作用是给字符串里的特殊符号加上合适的转义符号。注意,不需要给$string2做这个处理。