RegEx: извлечь номер из исходного кода - PullRequest
1 голос
/ 21 октября 2009

Я не эксперт по 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 ]

8 голосов
/ 21 октября 2009

Я бы не использовал регулярные выражения для разбора HTML или XML. Вместо этого я бы загрузил документ в анализатор HTML DOM - вы можете найти несколько открытых источников здесь . Я не могу поручиться за что-либо из этого - я никогда не работал ни с чем, кроме XML в Java.

3 голосов
/ 21 октября 2009

Я не знаю точно, регулярное выражение Java, но я бы предложил что-то вроде

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

, поскольку синтаксис регулярных выражений во многих языках очень похож.

Пояснения

  • ( ... ) захватывает содержимое внутри возвращаемых переменных регулярного выражения
  • \d представляет собой цифру
  • + остается для одного или нескольких вхождений токена с левой стороны

, поскольку вы используете только положительные целые числа, вам не нужно заботиться о знаках и десятичных точках.

2 голосов
/ 21 октября 2009
<td>(\d+)</td>

должен сделать работу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...