全部博文(47)
2013年(47)
分类: PERL
2013-03-25 10:54:02
Perl正则表达式中模式匹配选项
选项描述
g匹配所有可能的Perl正则表达式中模式
i忽略大小写
m将串视为多行
o只赋值一次
s将串视为单行
x忽略Perl正则表达式中模式中的空白
1、匹配所有可能的Perl正则表达式中模式(g选项)
@matches="balata"=~/.a/g;#now@matches=("ba","la","ta")
匹配的循环:
while("balata"=~/.a/g){
$match=$&;
print("$match\n");
}
结果为:
ba
la
ta
当使用了选项g时,可用函数pos来控制下次匹配的偏移:
$offset=pos($string);
pos($string)=$newoffset;
2、忽略大小写(i选项)例
/de/i匹配de,dE,De和DE。
3、将字符串看作多行(m选项)
在此情况下,^符号匹配字符串的起始或新的一行的起始;$符号匹配任意行的末尾。
4、只执行一次变量替换例
$var=1;
$line=;
while($var<10){
$result=$line=~/$var/o;
$line=;
$var++;
}
每次均匹配/1/。
5、将字符串看作单行例
/a.*bc/s匹配字符串axxxxx\nxxxxbc,但/a.*bc/则不匹配该字符串。
6、在Perl正则表达式中模式中忽略空格
/\d{2}([\W])\d{2}\1\d{2}/x等价于/\d{2}([\W])\d{2}\1\d{2}/。