我有一个简单的 Perl 正则表达式,需要将其保存为变量。
如果我打印它:
print($html_data =~ m/<iframe id="pdfDocument" src=.(.*)pdf/g);
它打印了我想保存的内容,但是在尝试使用以下内容保存时:
$link = $html_data =~ m/<iframe id="pdfDocument" src=.(.*)pdf/g;
我得到一个“1”作为
$link
的值.我认为这是因为它找到了“1”匹配。但是我该如何保存比赛的内容呢?
最佳答案
注意/g 以获取所有匹配项。那些不可能放入标量中。你需要一个数组。
my @links = $html_data =~ m/<iframe id="pdfDocument" src=.(.*)pdf/g;
如果您只想要第一场比赛:
my ($link) = $html_data =~ m/<iframe id="pdfDocument" src=.(.*)pdf/;
注意括号(以及缺少现在无用的/g)。您需要它们在列表上下文中调用 m//。
关于regex - 将匹配的 Perl 正则表达式保存为变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10113225/