我想能够在页面中显示的HTML块中获取"Target":
Target
我可以指望可靠的间距.我不能指望的是"目标"将始终包含在锚标记中.有时,它看起来像这样:
Target
我可以匹配第一个版本并使用此正则表达式轻松提取"目标":
/\s+\s+(.*)\s+<\/a>\s+<\/h3>/
但是我很难写出一个能与之匹敌的东西.有任何想法吗?
不要使用正则表达式来解析HTML.在大多数情况下,它更值得痛苦.使用旨在解析HTML的库.
#!/usr/bin/perl use v5.16; use strict; use warnings; use HTML::TreeBuilder; my $data = qq{Target
}; my $otherdata = qq{Target
}; my $t = HTML::TreeBuilder->new_from_content($data); say $t->look_down(_tag => "h3")->as_text(); $t = HTML::TreeBuilder->new_from_content($otherdata); say $t->look_down(_tag => "h3")->as_text();