17站长网

17站长网 首页 脚本 perl 查看内容

perl正则表达式

2022-12-8 15:31| 查看: 1638 |来源: 互联网

$也能匹配\n 见Perl语言入门,page 132, 注释6 1 /^.*$/能匹配"\n"么?能!因为$不仅能匹配行尾,也能匹配\n2 /^.*$/能匹配"b\n"么?能!.能b匹配. \n匹配$3 /^.*$/能匹配"\nb"么?不能!为什么?因为默认情况下,

$也能匹配\n

见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选项是不起作用的。

本文最后更新于 2022-12-8 15:31,某些文章具有时效性,若有错误或已失效,请在网站留言或联系站长:17tui@17tui.com
·END·
站长网微信号:w17tui,关注站长、创业、关注互联网人 - 互联网创业者营销服务中心

免责声明:本站部分文章和图片均来自用户投稿和网络收集,旨在传播知识,文章和图片版权归原作者及原出处所有,仅供学习与参考,请勿用于商业用途,如果损害了您的权利,请联系我们及时修正或删除。谢谢!

17站长网微信二维码

始终以前瞻性的眼光聚焦站长、创业、互联网等领域,为您提供最新最全的互联网资讯,帮助站长转型升级,为互联网创业者提供更加优质的创业信息和品牌营销服务,与站长一起进步!让互联网创业者不再孤独!

扫一扫,关注站长网微信

大家都在看

    热门排行

      最近更新

        返回顶部