@camperofcamper

Как составить регулярное выражение для строки, в которой известна первая часть строки, но неизвестно остальное?

По ссылке на regex101.com тестовые данные. Мне нужно вытащить содержимое тегов <tr>, в которых внутри <td class="num">1</td> определенное число. По ссылке — это 1.

Как просто найти нужный td я понимаю — это тоже сделано по ссылке. Проблема для меня в том, чтобы закинуть в регулярку все остальное содержимое tr тега. Как это лучше сделать? Неужели нужно прописывать шаблон для каждой следующей строки? Плюс я не совсем понимаю что делать, если исходник будет без табуляции: если убрать табы в исходнике, то регулярка перестает работать
  • Вопрос задан
  • 65 просмотров
Пригласить эксперта
Ответы на вопрос 2
Stalker_RED
@Stalker_RED
<td class="num">(.*?)<\/td>
https://regex101.com/r/a1ygUX/1

Стоит заметить, что разбирать html регулярками - довольно стремное занятие. На простых примерах оно вроде как работает, но довольно большой риск того, что все рассыпется в любой момент. Ну к примеру к этому num добавится еще один класс или атрибут.

И разбор регулярками просто невозможно сделать надежным, потому что HTML это контекстно-свободный, а не регулярный язык.
https://stackoverflow.com/a/1732454
Ответ написан
https://regex101.com/r/D7CIBS/1
точно по тз ;)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы