RegEx:从源代码中提取数字

时间:2009-10-21 12:35:55

标签: java regex

我不是RegEx专家。 我需要从HTML表格中提取一定数量 一个例子:

<td>13</td><td>
  </td><td align="right">29.543</td>
  <td align="right">1.777</td>
  <td align="right">2.588</td>
</tr><tr><td><a href="player.php?p=84668" >Caterdamus</a></td>
  <td>7</td><td>
  Meister</td><td align="right">9.874</td>
  <td align="right">1.716</td>
  <td align="right">5.791</td>
</tr><tr><td><a href="player.php?p=87216" >grappa</a></td>
  <td>2</td><td>
  </td><td align="right">1.044</td>
  <td align="right">21</td>
  <td align="right">146</td>
</tr></table>

模式如下:

<td>13</td><td>
<td>7</td><td>
<td>2</td><td>

如何从文本中提取数字并将其存储到变量中。 提示:数字是正整数。

感谢:)

3 个答案:

答案 0 :(得分:8)

我不会使用正则表达式来解析HTML或XML。相反,我会将文档加载到HTML DOM解析器中 - 您可以find several open source ones here。我不能担保任何这些 - 我从来没有使用过Java以外的任何东西。

答案 1 :(得分:3)

我不完全了解java正则表达式,但我建议像

/<td>(\d+)<\/td><td>/

因为正则表达式的语法在多种语言中非常相似。

<强>说明

  • ( ... )捕获正则表达式返回变量内的内容
  • \d代表数字
  • +停留在其左侧的令牌的一个或多个出现

因为你只使用正整数,所以你不必关心标志和小数点。

答案 2 :(得分:2)

<td>(\d+)</td>

应该做的。