$也能匹配\n
見Perl語言入門,page 132, 注釋6
1 /^.*$/能匹配"\n"么?能!因?yàn)?不僅能匹配行尾,也能匹配\n
2 /^.*$/能匹配"b\n"么?能!.能b匹配. \n匹配$
3 /^.*$/能匹配"\nb"么?不能!為什么?因?yàn)槟J(rèn)情況下,.不能匹配\n,把模式改一下變成/^.*$/s就可以了,/s表示.能匹配任意字符,包括\n
多行匹配/m
看一個(gè)例子,這段代碼輸出:hello
復(fù)制代碼 代碼如下:
my $text = "hello, world,\nhello zdd,\nhello autumn";
while ( $text =~ /^hello/g ) {
print "hello\n"
}
稍微改變一下,加上/m選項(xiàng)
復(fù)制代碼 代碼如下:
my $text = "hello, world,\nhello zdd,\nhello autumn";
while ( $text =~ /^hello/mg ) {
print "hello\n"
}
現(xiàn)在輸出變成了
hello
hello
hello
注解:
默認(rèn)情況下,^和$匹配整個(gè)字符串的開頭和結(jié)尾,但是加上/m之后,^和$就匹配每行的開頭和結(jié)尾。也就是說,因?yàn)樽址杏袚Q行符\n,所以/m選項(xiàng)使得^$匹配每行的開頭和結(jié)尾。
如果字符串中沒有換行符,那么/m選項(xiàng)是不起作用的。
您可能感興趣的文章:- PERL 正則表達(dá)式詳細(xì)說明
- Perl中的正則表達(dá)式介紹
- 關(guān)于Perl里面正則表達(dá)式規(guī)范
- POSIX 風(fēng)格和兼容 Perl 風(fēng)格兩種正則表達(dá)式主要函數(shù)的類比(preg_match, preg_replace, ereg, ereg_replace)
- 解析posix與perl標(biāo)準(zhǔn)的正則表達(dá)式區(qū)別
- 在PHP中使用與Perl兼容的正則表達(dá)式
- 一個(gè)perl擴(kuò)展正則表達(dá)式代碼分析
- PHP中基于perl的正則表達(dá)式處理函數(shù)
- 強(qiáng)大的Perl正則表達(dá)式實(shí)例詳解