Я пытаюсь определить, не соблюдает ли данная страница порядок тегов заголовка (h1, h2 и т. д.). На самом деле, я хочу иметь возможность анализировать кучу страниц и чтобы он возвращал мне каждую страницу, которая НЕ соответствует порядку заголовков.
Моя первая цель состояла в том, чтобы узнать, следует ли сразу за a что-то еще, кроме h2. Чего я достиг с помощью следующего шаблона
(?<=<h1[^<>]*>.+?)(?<!<h1[^<>]*>.+?<h2[^<>]*>.+?)<h[3-6][^<>]*>
У меня работает предыдущее регулярное выражение, хотя оно не очень эффективно и далеко от совершенства.
Итак, в первую очередь я хотел бы получить некоторую помощь в улучшении этого шаблона и, если возможно, объяснение, сравнивающее мой старый шаблон и почему он настолько неэффективен. И во-вторых, я хотел бы обновить/изменить шаблон для достижения первоначальной цели, которая состоит в том, чтобы убедиться, что порядок тегов заголовка документа соблюдается.
ПРИМЕЧАНИЕ. Я использую RegexHero для сравнительного анализа.
Я знаю, что регулярные выражения обычно не являются лучшей практикой для синтаксического анализа HTML, но это скорее упражнение для меня, чтобы пользователь мог более эффективно искать, атомная группировка и тому подобное, спасибо за понимание.
Мы могли бы использовать следующий шаблон и следующий текст в качестве образца
Шаблон:
(?<=lol1.+?)(?<!lol1.+?lol2.+?)lol[3-6]
Текст:
лол1 бла лол3 бла лол2 бла лол4