Я каждый день вижу вопросы о том, как анализировать или извлекать что-то из некоторой строки HTML, а первый ответ/комментарий всегда "Не используйте RegEx для анализа HTML, чтобы вы не чувствовали гнев!" (последняя часть иногда опускается).
Это довольно сбивает меня с толку, я всегда думал, что в целом лучший способ разобрать любую сложную строку - использовать регулярное выражение. Итак, как работает парсер HTML? Не использует ли регулярные выражения для синтаксического анализа.
Один конкретный аргумент для использования регулярного выражения состоит в том, что не всегда существует альтернатива синтаксического анализа (например, JavaScript, где DOMDocument не является универсальным вариантом). Например, jQuery отлично справляется с использованием регулярного выражения для преобразования строки HTML в узлы DOM.
Не уверен, что это CW, это настоящий вопрос, на который я хочу ответить, а не на самом деле предназначен для обсуждения.