ЮМОР: Если у тебя проблема, и ты решил справиться с ней с помощью регулярного выражения, то у тебя уже две проблемы.
Главная » Полезные статьи » Раскрутка сайта » Полезные регулярные выражения

Полезные регулярные выражения

Регулярные выражения помогают нам быстро находить различные ошибки в коде сайта.

Хочется сказать, что написать совершенный паттэрн, наверное, невозможно. Совершенный паттэрн должен был бы в один приём уметь:

  • Обнаруживать двойное использование атрибутов тэга
  • Определять пропущенные обязательные атрибуты
  • Определять неверный формат тэга, например использование двойных кавычек внутри атрибута без экранирования
  • Проверять тэги без пробелов между атрибутами
  • Корректно определять атрибут на нестандартном месте, например <a title="blabla" href="blabla.htm">
  • и др.

В итоге нам приходится делать 5-20 проверок базы данных целого сайта по разным паттэрнам в поисках ошибок.

  • \<a\shref\=\"[^"]+\"\> - Поиск ссылок без тэга title.
  • \<img\s(src\=\"[^"]*\")+\s?((alt\=\"[^"]*\")+|(title\=\"[^"]*\")+)?\s*\/?\> - Поиск изображений либо вообще без тэгов alt,title, либо без одного из этих тэгов.

Разбираем тему по кусочкам

ПаттернЧто обозначаетПример
\<img(?=[^>]*src)(?=[^>]*title\=\"|alt\=\").*?\>Картинка, включающая и title и alt, а также возможны любые другие атрибуты<img src="#" alt="asdas" title="wqeeq" class="qwewqe" />
\<(?:img|a)[^\>]+?(?=(alt|title)\=\"[^\>]+\1\=\").*?\>Ищем картинку или ссылку с повторяющимися атрибутами<img src="#" title="атрибут тайтл" title="он же ещё раз" alt="qew">

Во всех статьях в коде заменены:

[ на &#91;

{ на &#123;

< на &123;

Звоните! +7 (812) 914-41-56

Заказать эту или любую другую услугу вы можете на странице контактов.