我正在读取一个 HTML 文件,试图从中获取一些信息。我尝试过 HTML 解析器,但不知道如何使用它们来获取关键文本。原始版本读取 html 文件,但此版本是用于 StackOverflow 目的的最小工作示例。
#!/usr/bin/env perl
use 5.036;
use warnings FATAL => 'all';
use autodie ':default';
use Devel::Confess 'color';
sub regex_test ( $string, $regex ) {
if ($string =~ m/$regex/s) {
say "$string matches $regex";
} else {
say "$string doesn't match $regex";
}
}
# the HTML text is $s
my $s = ' rs577952184 was merged into
<a target="_blank"
href="rs59222162">rs59222162</a>
';
regex_test ( $s, 'rs\d+ was merged into.*\<a target="_blank".+href="rs(\d+)/');
但是,这不匹配。
我认为问题是“合并到”后的换行符不匹配。
如何更改上述正则表达式以匹配 $s
?
最佳答案
问题在于 $regex
中的尾随 /
字符,应将其省略或更改为 "
关于regex - 无法获取多行正则表达式来匹配字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74323002/