小编jef*_*eff的帖子

Perl模式匹配变量问题

我正在尝试打开一个文件,匹配一个特定的行,然后围绕该行包装HTML标记.看起来非常简单,但显然我缺少一些东西,并且不能正确理解Perl匹配的模式变量.

我跟这个匹配:

$line =~ m/(Number of items:.*)/i;
Run Code Online (Sandbox Code Playgroud)

这使整条线路成为1美元.我尝试打印出我的新行,如下所示:

print "<p>" . $1 . "<\/p>;
Run Code Online (Sandbox Code Playgroud)

我希望它打印出来:

<p>Number of items: 22</p>
Run Code Online (Sandbox Code Playgroud)

但是,我实际上得到了这个:

</p>umber of items: 22
Run Code Online (Sandbox Code Playgroud)

我尝试了各种各样的变化 - 在一个单独的行上打印每个位,使用$ +和$&等将$ 1设置为一个新变量,我总是得到相同的结果.

我错过了什么?

regex perl backreference

2
推荐指数
1
解决办法
1776
查看次数

标签 统计

backreference ×1

perl ×1

regex ×1