5.2.1 模式修饰词

5.2.1  模式修饰词

/i 修饰词是说同时匹配大写或者小写(以及在 Unicode 里的标题)


/s 和 /m 修饰词并不涉及任何古怪的东西。它们只是影响 Perl 对待那些包含换行符的匹配的态度。


元字符 "." 匹配除了换行符以外的任何单个字符,因为它的传统含义是匹配一行内的某个字符。


不过带有/s时,"." 元字符也可以匹配一个换行符,因为已经告诉Perl 忽略该字符串可能包含的多个换行符的情况

Vsftp:/root/perl/2# cat a4.pl 
my $var=" my
          aa
          bb";
if ($var =~ /.*my.*aa.*bb/){print "11111111
"};
Vsftp:/root/perl/2# perl a4.pl 
Vsftp:/root/perl/2# 


Vsftp:/root/perl/2# cat a4.pl 
my $var=" my
          aa
          bb";
if ($var =~ /.*my.*aa.*bb/s){print "11111111
"};
Vsftp:/root/perl/2# perl a4.pl 
11111111

/m 修饰符


先说锚定符,如果在单行模式 /s 下使用^或$来表示匹配开始或末尾的话,那么^,$将匹配的是字符串的开头和末尾,

而并不是以‘
’为概念的行的开头和末尾,如果想匹配‘
’为概念的行的开头和末尾,则要与多行模式混合 /m 使用,即 m/你的模式/sm,但是这还取决于另一个元字符——'.'。



/m  令 ^ 和 $ 匹配随后嵌入的 
。 当作多行处理

Vsftp:/root/perl/2# cat a4.pl 
my $var="my
aa
bb";
if ($var =~ /^my
^aa
bb$/){print "11111111
"};
Vsftp:/root/perl/2# perl a4.pl 
Vsftp:/root/perl/2# 



Vsftp:/root/perl/2# cat a4.pl 
my $var="my
aa
bb";
if ($var =~ /^my
^aa
bb$/m){print "11111111
"};
Vsftp:/root/perl/2# perl a4.pl 
11111111

原文地址:https://www.cnblogs.com/hzcya1995/p/13350032.html