Chinaunix首页 | 论坛 | 博客
  • 博客访问: 156503
  • 博文数量: 42
  • 博客积分: 972
  • 博客等级: 准尉
  • 技术积分: 382
  • 用 户 组: 普通用户
  • 注册时间: 2010-06-17 10:59
文章分类

全部博文(42)

文章存档

2014年(2)

2013年(5)

2012年(35)

我的朋友

分类: Python/Ruby

2012-11-21 15:53:18

例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/ / /将计算并返回匹配的字符。目标字符串并不被修改。





阅读(8934) | 评论(0) | 转发(0) |
0

上一篇:Perl 调用外部命令

下一篇:Linux 文件目录

给主人留下些什么吧!~~