LINUX.ORG.RU

История изменений

Исправление x3al, (текущая версия) :

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

Классические регэкспы не могут определить даже правильно ли расставлены скобки в исходнике на каком-нибудь ЯП.

Другое дело — XML-парсеры, умеющие в том числе регэкспы для, скажем, значений атрибутов тегов. Не для разбора на теги. Не для вычленения атрибутов. В таком виде регэкспы — вполне себе инструмент (внутри основного парсера).

Исходная версия x3al, :

Эмм. Если забить на DTD, раскрыть многие entities, запретить чуть ли не все варианты вложений, автоматически заменить некоторые валидные в HTML вещи вроде случайного знака «>» на те же entities (поэтому до конца от entities не избавиться), убрать комментарии и CDATA (и вообще — всё чужеродное, включая скрипты и стили), привести вайтспейс к одному виду, разобраться с закрывающими тегами, раскрыть SHORTTAGS — я бы всё равно не брался за задачу полноценного разбора такого ограниченного HTML регэкспами.

Классические регэкспы не могут определить даже правильно ли расставлены скобки в исходнике на каком-нибудь ЯП.

Другое дело — XML-парсеры, умеющие в том числе регэкспы для, скажем, значений атрибутов тегов. Не для разбора на теги. Не для вычленения атрибутов. В таком виде регэкспы — вполне себе инструмент (внутри основного парсера).