2011-03-10 101 views
1

行我有我試圖解析正則表達式得到一個表

<tr>...</tr> 
<tr>...</tr> 
<tr>...</tr> 
<tr>...</tr> 

每一行類似格式化的表格,我想他們除了使用正則表達式拆分。我已經試過所有我能想到的,但它似乎總是把整個內容匹配

我已經試過這樣

$pattern = ':(<tr>.*</tr>):'; 
preg_match_all($pattern , $working, &$regs2 ); 

的東西,但它總是最大限度地採取一切都在一個去,而不是最小一行一行。

這可能是非常基本的,但我只是看不到它。

+1

長話短說:不要使用正則表達式來解析HTML。使用真正的XML解析器。 – 2011-03-10 14:32:14

+0

這是我嘗試的第一件事,但它沒有解析HTML,我沒有得到任何解析器,這就是爲什麼我訴諸正則表達式 – paullb 2011-03-10 14:33:40

+0

如果你必須使用正則表達式來解析HTML,然後瞭解「貪婪」和「不真實」......你是對的,這是非常基本的 – 2011-03-10 14:34:22

回答

2

在正則表達式測試儀我通常使用,它似乎正常工作。 (http://regexpal.com/) 如果它看起來太貪婪,請嘗試使用? *之後讓它冷靜一點。如果你不想捕捉,<tr></tr>將()移動到裏面,如<tr>(.*?)</tr>/

3

你需要讓.*模式非貪婪加入了?。嘗試.*?作爲中間模式,看看問題是否存在。

真的,你不應該使用正則表達式解析HTML,但你沒有問發生了什麼事,所以......

+0

絕對完美。 (我真的認爲,我不應該使用正則表達式來解析HTML,但其他可能性似乎失敗)。 – paullb 2011-03-10 14:40:08