关于perl正则表达式的一些杂项内容

来源:爱站网时间:2018-12-28编辑:网友分享
正则表达式是Perl语言的特色,基本的语法不是很难,但是编写一个符合需求、高效的正则表达式,还是有一些挑战的,下面这篇文章主要给大家介绍关于perl正则表达式的一些杂项内容。

正则表达式是Perl语言的特色,基本的语法不是很难,但是编写一个符合需求、高效的正则表达式,还是有一些挑战的,下面这篇文章主要给大家介绍关于perl正则表达式的一些杂项内容。

$也能匹配\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选项是不起作用的。

关于perl正则表达式的一些杂项内容就介绍完了,希望这篇文章对大家有所帮助,如果你还有疑问欢迎给我留言,小编会及时回复大家的,同时也非常感谢大家对爱站技术频道的支持!

上一篇:perl 5基础教程——运算符

下一篇:介绍如何创建和引用Perl哈希

您可能感兴趣的文章

相关阅读

查看更多 >

热门软件源码

最新软件源码下载