例1、把字符串中的两个software的前后分别加上xx和yy
s/(software)/xx $1 yy/ig
i代表不区分大小写, g代表全部搜索替换。
software表示你要替换的值,加上括号为了在后面使用。
$1就是匹配的第一个()内的值
s里面的字串是可以放入函数的,比如uc,lc等,也可以加单引号。
m表示对于每个n都可以解析成行尾
例2、$var='abcda';$var =~ s/a/11/g;最终var值为11bcd11。而$var =~ tr/a/11/;后$var值为1bcd1;
s替换可以将一个字符(比如a)换成两个字符(11),而tr转换却只能是一对一的替换(a只能转换为1,不能是11)。
总结:
s///: 替换运算符。s/searchpattern/repalcement/;默认搜索$ _,找出searchpattern,并且用replacement来替换整个匹配的正则表达式。该运算符返回匹配的数量或进行替换的数量,如果没有进行任何匹配,则返回0。
当然也可以指定某个变量,如$perl=~s/searchpattern/repalcement/; 另外,替换运算符也可以使用非斜杠(/)的界限符,如s###.
转换操作符tr///的作用与替换运算符有些类似,不过它并不使用正则表达式,而且它的运行方式完全不同。转换操作符的句法如下所示:tr/searchment/repalcement/;是把searchment的第一个字符换成replacement的第一个字符,searchment的第二个字符换成replacement的第二个字符,依此类推。
即:转换操作符tr/ / /用于搜索一个字符串,找出searchlist中的各个元素,并用replacementlist中的对应元素对它们进行替换。如果replacementlist是空的,或者与searchlist相同,那么tr/ / /将计算并返回匹配的字符。目标字符串并不被修改。
您可能感兴趣的文章:
perl命令批量替换文件内容的方法