在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
修飾符,.
將匹配包括換行符在內的任意字符。