Задать вопрос
@shasoftX

Как с помощью регулярного выражения найти все теги?

Нужно найти все теги. Для этого быстро придумал регулярку вида
"/<.+?>/im"
однако на таком примере
<<===<fgRed>cmd_exec</fgRed>wert

она находит
<<===<fgRed>
</fgRed>


вместо
<fgRed>
</fgRed>

Как это сделать правильно?
  • Вопрос задан
  • 38 просмотров
Подписаться 1 Простой 1 комментарий
Решения вопроса 2
@rPman
Регулярные выражения не подходят для анализа html.

Даже в очень простых случаях они будут неоправданно сложными. Страницу нужно предварительно разобрать на составные элементы, разобрать и отфильтровать их типы (атрибут, текст, теги,..) и уже по этому разбору что либо искать.

Настоятельно рекомендую готовые анализаторы html, они есть подо все популярные и не очень языки и фреймворки. Например для php - штатные или рекомендую simple_html_dom, код будет простым, работать будет очень быстро, все встроено в php или простой include одного файла..
Ответ написан
Комментировать
vhood
@vhood
Не забывайте отмечать решения
/<[^<>]+>/
https://regex101.com/r/GA6w7j/2

Только цель не ясна. Есть много кейсов, которые не решить такой регуляркой. Например, выделение парных тегов.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы