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″;

第一个打印操作打印出带/*和*/的匹配结果,第二个则只有圆括号所包的部分。

Posted: July 11, 2006 Comments (0)

保税区真是个神奇的地方

保税区真是个神奇的地方

班车偶然一次不走原来路线,一个早先在三号门附近工作过的同事兴致勃勃给我们当导游:居然看到一片白墙灰瓦翘檐,说是杜月笙故居,现在是警察署。还有一个国际商品市场,说是最有名的假名牌市场之一,Z i p p o只要20人民币。保税区在我原来的印象里只是个树底下会长蘑菇的地方,没想到还这么神奇啊。

Posted: Comments (0)