如何匹配Perl正则表达式中的表标记?

时间:2014-06-26 16:26:25

标签: regex perl

我试过

/(^<table)(.*?)($>)/

它应匹配表标记<>之间的所有内容,但它不是

1 个答案:

答案 0 :(得分:0)

正如this question的评论中所提到的,用正则表达式解析HTML并不实际。

以下是使用Mojo::DOM的示例,其灵感来自this StackOverflow answer

#!/usr/bin/env perl

use strict ;
use warnings ;

use Mojo::DOM ;

my $html = <<EOHTML;
<!DOCTYPE html>
<html>
<head>
<title>Sample HTML with a table</title>
</head>
<body>
     <table border>
        <tr> <td>a</td> <td>b</td> <td>c</td> </tr>
        <tr> <td>1</td> <td>2</td> <td>3</td> </tr>
     </table>
</body>
</html>
EOHTML

my $dom = Mojo::DOM->new ;

$dom->parse( $html ) ;

for my $div ( $dom->find( 'td' )->each ) {

    print $div->all_text . "\n" ;

}

输出结果为:

a
b
c
1
2
3