Perl正则表达式问题

Ank*_*wal 0 regex perl

如何在Perl中的$ 1,$ 2和$ 3变量中匹配并存储此字符串中的各行?

$string = "This is a line 1.\nThis is line 2.\nThis is line 3.\n";
Run Code Online (Sandbox Code Playgroud)

我知道我必须使用/ m修饰符,但到目前为止我的尝试都没有成功.

我试过了

$string =~ m/^(.*?)$.^(.*?)$.^(.*?)$/sm;
Run Code Online (Sandbox Code Playgroud)

和其他组合无济于事.我想保持简单,所以任何指出错误的答案都会有所帮助.我想只尝试使用/ s和/ m修饰符.

Hen*_*olm 6

为什么要使用$^匹配中间换行符?这样做会更简单

$string =~ m/^(.*)\n(.*)\n(.*)/ ;
Run Code Online (Sandbox Code Playgroud)

既没有/ m也没有/ s.甚至简单

($a,$b,$c) = split /\n/,$string ;
Run Code Online (Sandbox Code Playgroud)