我试过
/(^<table)(.*?)($>)/
它应匹配表标记<>
之间的所有内容,但它不是
答案 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