#regex
#регулярное выражение
Вопрос:
Если я хочу получить текущую цену 416.00
следующего содержимого, какое регулярное выражение я могу использовать для его получения? На веб-странице есть несколько мест с похожим контентом, за исключением того, что в том, которое я хочу, есть слово Discount
через несколько строк после текущей цены. 416,520
и 20%
являются переменными. Спасибо.
<tr>
<td class="txt_11px_b_EB6495" width="50" nowrap>Current Price?</td>
<td class="txt_11px_b_EB6495">HK$ 416.00</td>
</tr>
<tr>
<td class="txt_11px_n_999999">Original price?</td>
<td class="txt_11px_n_999999">HK$ 520.00</td>
</tr>
<tr>
<td class="txt_9px_n_999999">amp;nbsp;</td>
<td class="txt_9px_n_999999">Discount 20%</td>
</tr>
Ответ №1:
Вы можете использовать
" (d .d*)</td>"
Это будет соответствовать 520.00, 2.00, 123.1 и 123.
Комментарии:
1. Я думаю, что эта исправленная версия подойдет просто отлично.
(d .d*)
2. На самом деле на веб-странице есть еще другая информация о текущих ценах, которую я хочу зафиксировать, это та, в которой после 11-й строки html-кода указано «Скидка». Следовательно, если просто использовать (d .d $), будут получены другие текущие цены
Ответ №2:
Используйте анализатор HTML, чтобы получить текстовый узел, затем извлеките цену, используя регулярное выражение.
Вы бы использовали что-то вроде…
d (?:.d{2}|%)
Я только что протестировал его, и оно совпало…
- 416.00
- 520.00
- 20%
Я предположил (это было неясно для меня), что вы хотите цены и процентную скидку. Я также сопоставил %
, чтобы вы могли определить, каковы проценты совпадений.