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