有关perl正则表达式的一些杂项
程序员文章站
2022-10-08 09:36:28
$也能匹配\n
见perl语言入门,page 132, 注释6
1 /^.*$/能匹配"\n"么?能!因为$不仅能匹配行尾,也能匹配\n2 /^.*$/能匹配"b\n"...
$也能匹配\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选项是不起作用的。
上一篇: 凌烟阁功臣的子孙后代都过得怎么样?
下一篇: Photoshop 一个溅起的金色水花
推荐阅读
-
PHP中一些可以替代正则表达式函数的字符串操作函数
-
POSIX 风格和兼容 Perl 风格两种正则表达式主要函数的类比(preg_match, preg_replace, ereg, ereg_replace)
-
与正则表达式有关的方法
-
[目录] -- 计划翻译一些有关CLR/C#的基础内容,希望能坚持下去
-
收集一些常用的正则表达式(匹配中文字符、匹配双字节字符、匹配HTML标记、匹配空行 and so on~~~)
-
让URL只允许一些字符的正则表达式
-
和怀孕有关的一些笑话集锦
-
在PHP中使用与Perl兼容的正则表达式
-
cpan安装Net::SSH::Perl中遇到的一些问题
-
perl 标量和运算符的一些知识介绍