我在文档中有HTML标记,如下所示:
><H2
align="justify"
><FONT size="+2" color="#008AD9"><B>ACCESS_NUMBER<FONT size="+2" color="#008AD9"><B>
</H2
>
我想从上面的HTML文本中仅提取ACCESS_NUMBER。
我该怎么做?我想确保只提取所有<H2>
标记之间的文本。
任何帮助将不胜感激。
答案 0 :(得分:4)
#!/usr/bin/perl
use strict;
use warnings;
use Mojo::DOM;
my $HTML = <<"EOF";
<html>
<head>
<title>Test</title>
</head>
<body>
<h2>
<font><b>ACCESS_NUMBER</b></font>
</h2>
</body>
</html>
EOF
my $dom = Mojo::DOM->new( $HTML );
print $dom->find('h2 font b')->text;
关于Mojo::DOM
和Mojo::UserAgent
的8分钟视频教程,请查看Mojocast Episode 5
答案 1 :(得分:1)
根据上面给出的内容,这会有效,但有些东西告诉我你有更复杂的HTML和/或你真的想要\ d +。
#!/usr/bin/perl
use strict;
use warnings;
while(<DATA>){
print "$1\n" if />(\w+)</;
}
__DATA__
<H2
align="justify"
<FONT size="+2" color="#008AD9"><B>ACCESS_NUMBER<FONT size="+2" color="#008AD9"><B>S
</H2
答案 2 :(得分:0)
$l=~s/<.+?>/ /g; # Replace each tag with a space so you don't get run-on words.
您剩下的只是没有html标签的文字。
我使用的软件使用我必须删除的标签(不是html),所以我做了很多。