2014-06-26 40 views
0

我試圖如何匹配Perl正則表中的表標記?

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

應該匹配的一切,是<>之間爲表標籤,但它並不

+2

我想你的意思是:<(。*?)(表('/ ^)> $)/',但在'

'標籤之前或之後不會有空白。 –

+0

一個例子會更好。 –

+3

潛在的['XY問題'](http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem):請詳細解釋你的目標是什麼樣的數據,或者我們是不太可能建議你。 – Miller

回答

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