2011-02-23 65 views
2

我有字符串:正則表達式得到TR標記

' 
<tr id="sdf"></tr> 
<td> 
    <div>asdf</div> 
    asdf 
</td> 
<tr id="sdfdf"> 
    <td> 
    <div>asdf</div> 
    asdf 
    </td> 
</tr> 
<tr id="sdf"></tr> 
<tr id="ssdfdf"> 
    <td> 
    <div>asdf</div> 
    asdf 
    </td> 
</tr> 
' 

,我想tr標籤保存到使用正則表達式的數組。

+3

關於什麼?一頭大象?疣?這是一個XHTML問題嗎?什麼是源數據?你想對結果做什麼?另外,用Regex解析XHTML幾乎總是錯誤的。 – 2011-02-23 11:06:32

+0

通過使用HTML解析器...您必須提供*很多*更多信息。 – 2011-02-23 11:06:45

+0

我將在數組中存儲tr標籤,然後按部分發送它們。 – Alexander 2011-02-23 11:08:49

回答

3

只要<tr>標籤永遠不會嵌套,你可以試試這個:

result = subject.match(/<tr[\s\S]*?<\/tr>/g); 

這可以讓你所有的<tr>標記及其內容的數組。

[\s\S]是說「任何字符,包括換行符」和*?要求零或多次重複的JavaScript方式,試圖儘可能少地使用以避免一次匹配多個標籤。

儘管<tr>標籤是嵌套的,但這是正則表達式不是解析標記語言的最佳工具之一(要說得很溫和),這就炸了。通過解析DOM,您將獲得更可靠的結果。