RegEx - 获取没有TR嵌套的HTML TR

时间:2011-11-17 21:38:32

标签: html regex

我试图在没有TR嵌套在其中的网页上获取TR的内容。 HTML嵌套了许多TR

我仅限于此问题的RegEx。

这很好:

TR
    Contents
/TR

这不是

TR
   other HTML
     TR
        Contents      

1 个答案:

答案 0 :(得分:4)

这实际上并不是正则表达式的一个问题(假设您可以保证<tr>不会出现在注释,字符串等中;否则正则表达式将不匹配):

<tr\b(?:(?!</?tr\b).)*</tr>

只会匹配最里面的tr个标签。使用正则表达式引擎的dot-matches-newlines选项,否则它将无法正常工作。如果您没有(JavaScript,我正在与您交谈!),请使用[\s\S]代替.

<强>解释

<tr\b      # Match a tag that starts with tr
(?:        # Match...
 (?!       # (unless it's possible to match
  </?tr\b  #  <tr or </tr at the current position)
 )
 .         # any character 
)*         # any number of times.
</tr>      # Match </tr>