如何在perl正则表达式中匹配换行符\n?

rol*_*lls 6 regex perl

我想匹配这条线,

<center>'''<font color="blue"><font size="18.0pt">No Change Alarms Help &amp; Information</font></font>'''</center>
Run Code Online (Sandbox Code Playgroud)

并替换它,

=<center>'''<font color="blue">No Change Alarms Help &amp; Information</font>'''</center>=
Run Code Online (Sandbox Code Playgroud)

现在,如果标签总是字体颜色或中心,那将很简单,但它们绝对可以是任何东西,并且可以有多个.

我目前的代码是这样的:

$html =~ s/<font size=".+">(.+)<\/font>/$1/g;
Run Code Online (Sandbox Code Playgroud)

但这显然不会在每一端做=.

我想做的是:

$html =~ s/\n(.+)<font size=".+">(.+)<\/font>(.+)\n/=$1$2$3=/g;
Run Code Online (Sandbox Code Playgroud)

然而,它无法匹配换行符,我无法弄清楚如何使它匹配它们,任何线索?

(我正在将html转换为wiki标记,但转换器会填充字体大小,因此我手动将它们转换为wiki样式标题.)

rol*_*lls 6

我所需要的只是/gm在我的查询结束时,默认情况下忽略了新行.


Nik*_*iev 6

在某些情况下,它可能无法工作,因为 perl 如何“啜饮”输入。-0777作为参数传递将使其考虑多行。(将它与您的其他参数一起传递,例如perl -0777pi -e