История изменений
Исправление x3al, (текущая версия) :
Эмм. Если забить на DTD, раскрыть многие entities, запретить чуть ли не все варианты вложений тегов друг в друга кроме пары обговоренных случаев, автоматически заменить некоторые валидные в HTML вещи вроде случайного знака «>» на те же entities (поэтому до конца от entities не избавиться), убрать комментарии и CDATA (и вообще — всё чужеродное, включая скрипты и стили), привести вайтспейс к одному виду, разобраться с закрывающими тегами, раскрыть SHORTTAGS — я бы всё равно не брался за задачу полноценного разбора такого ограниченного HTML регэкспами.
Классические регэкспы не могут определить даже правильно ли расставлены скобки в исходнике на каком-нибудь ЯП.
Другое дело — XML-парсеры, умеющие в том числе регэкспы для, скажем, значений атрибутов тегов. Не для разбора на теги. Не для вычленения атрибутов. В таком виде регэкспы — вполне себе инструмент (внутри основного парсера).
Исходная версия x3al, :
Эмм. Если забить на DTD, раскрыть многие entities, запретить чуть ли не все варианты вложений, автоматически заменить некоторые валидные в HTML вещи вроде случайного знака «>» на те же entities (поэтому до конца от entities не избавиться), убрать комментарии и CDATA (и вообще — всё чужеродное, включая скрипты и стили), привести вайтспейс к одному виду, разобраться с закрывающими тегами, раскрыть SHORTTAGS — я бы всё равно не брался за задачу полноценного разбора такого ограниченного HTML регэкспами.
Классические регэкспы не могут определить даже правильно ли расставлены скобки в исходнике на каком-нибудь ЯП.
Другое дело — XML-парсеры, умеющие в том числе регэкспы для, скажем, значений атрибутов тегов. Не для разбора на теги. Не для вычленения атрибутов. В таком виде регэкспы — вполне себе инструмент (внутри основного парсера).