2011-02-23 71 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,您将获得更可靠的结果。