Java正则表达式复杂的模式

时间:2013-06-13 12:28:54

标签: java html regex

我有一个这样的字符串(由HTML源代码制作):

<tr>
  <td>
    <tr>First</tr>
  </td>
</tr>
<tr>
  <td>Second</td>
</tr>
<tr>
  <td>
    <tr>
      <td>Upper</td>
    </tr>
    <tr>
      <td>Lower</td>
    </tr>
  </td>
</tr>

但是在一行中 - 我把它分开以使它看起来更好。 我想要实现的是一个正则表达式,它将捕获此表的整行,因此匹配为:

<td>
  <tr>First</tr>
</td>

<td>Second</td>

<td>
  <tr>
    <td>Upper</td>
  </tr>
  <tr>
    <td>Lower</td>
  </tr>
</td>

最简单的选择:

  • <tr>.*</tr> - 抓住一切
  • <tr>.*?</tr> - 从第一个<tr>抓到第一个</tr>

我希望它能够捕获相应的标签。有人可以帮忙吗?

1 个答案:

答案 0 :(得分:1)

您可以使用html解析引擎jsoup并运行类似这样的内容来从表中提取行

String url = "a.html";
Document doc = Jsoup.connect(url).get();

Elements rows = doc.select("table tr");