使用perl在HTML标记之间提取文本

使用perl在HTML标记之间提取文本,html,perl,Html,Perl,我在文档中有如下HTML标记: ><H2 align="justify" ><FONT size="+2" color="#008AD9"><B>ACCESS_NUMBER<FONT size="+2" color="#008AD9"><B> </H2 > >访问号 我只想从上面的HTML文本中提取访问号 我该怎么做?我想确保只提取所有标记之间的文本。 任何帮助都将不胜感激。使用 #/usr/bin/perl 严

我在文档中有如下HTML标记:

><H2 
align="justify"
><FONT size="+2" color="#008AD9"><B>ACCESS_NUMBER<FONT size="+2" color="#008AD9"><B>
</H2
>
>访问号
我只想从上面的HTML文本中提取访问号

我该怎么做?我想确保只提取所有
标记之间的文本。 任何帮助都将不胜感激。

使用

#/usr/bin/perl
严格使用;
使用警告;
使用Mojo::DOM;
my$HTML=find('h2 font b')->文本;
有关
Mojo::DOM
Mojo::UserAgent
的8分钟视频教程,请查看使用

#/usr/bin/perl
严格使用;
使用警告;
使用Mojo::DOM;
my$HTML=find('h2 font b')->文本;

对于一个关于
Mojo::DOM
Mojo::UserAgent
的8分钟视频教程,基于上面给出的内容,这是可行的,但有些东西告诉我您有更复杂的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
#/usr/bin/perl
严格使用;
使用警告;
while(){

如果/>(\w+)根据上面给出的内容打印“$1\n”,这会起作用,但有些信息告诉我您有更复杂的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
!/usr/bin/perl
严格使用;
使用警告;
while(){
为每行打印“$1\n”if/>(\w+)删除如下html标记:
$l=~s///g;#将每个标记替换为一个空格,这样您就不会在单词上运行。
剩下的只是没有html标记的文本

我使用的软件使用必须删除的标记(不是html),因此我经常这样做。

对于每一行,删除html标记如下:
$l=~s///g;#将每个标记替换为一个空格,这样您就不会在单词上运行。
剩下的只是没有html标记的文本


我使用的软件使用标签(不是html)我必须删除它,所以我经常这样做。

投票。99.9%的情况下,像这样使用一个合适的HTML解析器比使用正则表达式要好得多。这正是我的想法…我想建议
Mojo::DOM
:-)谢谢你在包含视频的同时传递
Mojo::DOM
爱。他们真的应该把它添加到pod.+1他们应该制作更多的视频。投票。99.9%的时候,像这样使用一个合适的HTML解析器比使用正则表达式要好得多。这正是我的想法…我想建议
Mojo::DOM
:-)谢谢你在包含视频的同时传递
Mojo::DOM
爱。他们真的应该把它添加到pod中。+1谢谢uld制作更多视频。您尝试过什么?这是代码的字面意思吗(即,如果文档与“HTML”的某些定义一致,
解析器可能能够提取您想要的文本):-)您尝试过什么?这也是代码的字面意思吗(也就是说,如果文档与“HTML”的某些定义一致,解析器可能能够提取所需的文本):-)
$l=~s/<.+?>/ /g; # Replace each tag with a space so you don't get run-on words.