• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

perl正则表达式杂项

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

见Perl语言入门,page 132, 注释6

1 /^.*$/能匹配"\n"么?能!因为$不仅能匹配行尾,也能匹配\n

2 /^.*$/能匹配"b\n"么?能!.能b匹配. \n匹配$

3 /^.*$/能匹配"\nb"么?不能!为什么?因为默认情况下,.不能匹配\n,把模式改一下变成/^.*$/s就可以了,/s表示.能匹配任意字符,包括\n

====

多行匹配/m

看一个例子,这段代码输出

hello

my $text = "hello, world,\nhello zdd,\nhello autumn";
while ( $text =~ /^hello/g ) {
print "hello\n"
}

稍微改变一下,加上/m选项

my $text = "hello, world,\nhello zdd,\nhello autumn";
while ( $text =~ /^hello/mg ) {
print "hello\n"
}

现在输出变成了

hello

hello

hello

为什么呢?

因为默认情况下,^和$匹配整个字符串的开头和结尾,但是加上/m之后,^和$就匹配每行的开头和结尾。也就是说,因为字符串中有换行符\n,所以/m选项使得^$匹配每行的开头和结尾。如果字符串中没有换行符,那么/m选项是不起作用的。

==


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
checkingforXML::Parser...configure:error:XML::Parserperlmoduleisrequiredforintlt ...发布时间:2022-07-22
下一篇:
【转】Perl中的正则表达式发布时间:2022-07-22
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap