Perl正则表达式备忘
Perl正则表达式备忘
Perl的语法超级简单,但是要想用好全要指望熟悉功能函数库和开关了。
1. /g加while循环实现多次匹配,/s实现跨行匹配(让.也匹配\n)
while( $contents =~ /\/\*.*?\*\//gs){
print “$&”;
}2. 如果用字符串作为匹配模式,字符串中的特殊字符就会被当作特殊字符。要想去特殊化,要么手工一个一个加\\,最好是使用quotemeta()函数:
$a = quotemeta($a);
$s =~ s/$a/$b/;quotemeta()会在每个特殊字符前加两(!)个反斜杠\。注意替换字符串$b不要用quotemeta()处理,因为它不用来作匹配,特殊字符不会被按正则表达式解析。
3. 圆括号用来指定匹配模式的一部分到变量$1, $2……
$contents =~ /\/\*(.*?)\*\//
print “$&”;
print “$1″;第一个打印操作打印出带/*和*/的匹配结果,第二个则只有圆括号所包的部分。
