当前位置:  开发笔记 > 编程语言 > 正文

使用或不使用链接匹配HTML的正则表达式

如何解决《使用或不使用链接匹配HTML的正则表达式》经验,为你挑选了1个好方法。

我想能够在页面中显示的HTML块中获取"Target":

Target

我可以指望可靠的间距.我不能指望的是"目标"将始终包含在锚标记中.有时,它看起来像这样:

Target

我可以匹配第一个版本并使用此正则表达式轻松提取"目标":

/

\s+\s+(.*)\s+<\/a>\s+<\/h3>/

但是我很难写出一个能与之匹敌的东西.有任何想法吗?



1> Quentin..:

不要使用正则表达式来解析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();


HTML解析器通常仍然更好地处理HTML的小片段而不是正则表达式.
推荐阅读
地之南_816
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有