在Perl中,正则表达式默认是单行的。要处理多行文本,你需要使用修饰符m
(多行模式)和s
(单行模式)。
要在多行模式下使用正则表达式,需要在正则表达式的开头添加m
修饰符。这样,.
将匹配包括换行符在内的任意字符。例如:
#!/usr/bin/perl
use strict;
use warnings;
my $text = "Line 1\nLine 2\nLine 3";
if ($text =~ /^(\w+)\s+(\w+)/m) {
print "Match found: $1 $2\n";
} else {
print "No match found\n";
}
在这个例子中,我们使用了m
修饰符来匹配多行文本。^
和$
分别匹配每行的开头和结尾,\w+
匹配一个或多个单词字符。
如果你想在多行模式下使用s
修饰符(将.
匹配包括换行符在内的任意字符),只需在正则表达式的开头添加m
修饰符即可。例如:
#!/usr/bin/perl
use strict;
use warnings;
my $text = "Line 1\nLine 2\nLine 3";
$text =~ s/foo/bar/g;
print $text;
在这个例子中,我们使用了s/foo/bar/g
来替换所有出现的"foo"为"bar"。由于我们添加了m
修饰符,.
将匹配包括换行符在内的任意字符。