2010年(122)
分类:
2010-07-20 11:15:58
第九章 用正则表达式处理文本
正则表达式也可以修改文本。之前我们只是告诉你如何进行模式匹配,但现在要用模式来定位部分字符串,并进行修改。
用s///替换
s///操作符将指定变量合乎模式的那部分替换为另一个串:
$_=”He’s out bowling with Barney tonight.”;
s/Barney/Fred/;
print “$_\n”;
用/g进行全局替换
该修饰符可让s///进行所有可能的、不重复的替换。
不同定界符
对于一般没有左右之分的字符,用法便跟使用斜线一样,只要重复三次即可。
如果使用有左右之分的成对字符,就必须使用两对:一对圈引模式,一对圈引替换字符串。
可选修饰符
替换运算也可以使用我们常在模式匹配中使用的/i、/x与/s修饰符。
s#wilma#Wilma#gi;
绑定操作符
用=~为s///选择不同的目标。
大小写转换
\U转义字符会将其后的所有字符转换成大写。
\L转义字符会将其后的字符转换成小写。
\E结束大小写转换的影响。
\l转为大写只影响其后第一个字符。
\u转为小写只影响其后第一个字符。
split操作符
它会根据分隔符拆开一个字符串。这对处理被制表符、冒号、空白或任意符号分隔的数据相当有用。Split会保留开头处的空字段,并省略结尾处的空字段。Split默认会以空白字符分割$_。
Join函数
Join的功能与split恰好相反:split会将字符串分解为数个片段,而join则会把这些片段联合成一个字符串
列表上下文的m//
在列表上下文中使用模式匹配操作符(m//)时,如果模式匹配成功,那么返回的是所有捕获变量的列表;如果匹配失败,则会返回空列表。
/g修饰符也可以用在m//操作符上。