RegEx Как обрабатывать строки нулевой длины? - PullRequest
5 голосов
/ 01 марта 2011

Впервые на REgEX, и мне за шестьдесят, так что терпите меня Использование ColdFusion, так что предположительно Java-версия (если она есть)

Цикл повторяющегося текста, включая выбор значений, таких как 4.95 и 4, из

<td align="right" >4.95</td> 

<td align="right" >4</td>

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

.+?>(.+?)</td>.+?>(.+?)</td>

, но возникают проблемы, когда в строке нет значения, например,

<td align="right" ></td>

Как бы я мог вернуть ноль или 0 в этой ситуации

ТИА

1 Ответ

8 голосов
/ 01 марта 2011

Измените + на * в соответствующих местах:

...(.*?)...

A .+ соответствует один или более символов, тогда как .* соответствует ноль или более символов. Полученный захват будет пустой строкой.

Кроме того, я бы не советовал использовать регулярные выражения для разбора HTML. Посмотрите, есть ли анализатор HTML на вашем языке программирования.

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