Регулярные выражения — основы

Регулярные выражения — это формальный язык поиска и осуществления манипуляций с подстроками в тексте, основанный на использовании метасимволов. По сути это строка-образец, состоящая из символов и метасимволов и задающая правило поиска. (из Wikipedia). Использование регулярных выражений происходит регулярно в разнообразных местах (в windows — в поиске вы можете искать документы word по маске *.doc, в linux’е —  grep -rn ‘слово или словосочетание которое ищем’ * ). Однако в основном мы используем самые простые регулярные выражения. Например, если Вы составляли список адресов в squid для блокировки адресов или теже правила для adblock plus вы заметили что самые частые шаблоны строятся на * (любое количество повторов символа/набора, в том числе и нулевое;), однако например чтобы сделать парсиг какого нибудь сайта этого будет уже недостаточно и неплохо бы знать основные приемы при работе с регулярными выражениями. Далее идет список основных метасимволов:

^ – якорь, определяющий начало строки (работает только если стоит в самом начале - первым символом в шаблоне);
$ – якорь, определяющий конец строки (работает только если стоит в самом конеце - последним символом в шаблоне);
символ "точка" (.) соответствует любому произвольному символу;
* – любое количество повторов символа/набора, в том числе и нулевое;
? – соответствует нулю или одному экземпляру символа/набора;
+ – соответствует одному или большему количеству экземпляров символа/набора.

Вы также можете задавать диапазоны символов в квадратных скобках

[0123456789] - соответствует любой цифре из данного диапазона;
[абвгдеёжзийклм] - соответствует любой букве из данного диапазона;
[.,;:!?] - соответствует знаку препинания из данного диапазона;
Существует и обратная сторона ^ птичка в диапазоне позволит искать не содержащие данные символы в диапазоне например
[^0123456789] - соответствует любому символу, кроме цифрового;
[^абвгдеёжзийклм] - соответствует любому символу, кроме букв от а до м;
[^.,;:!?] - соответствует любому символу, кроме данных знаков препинаний;
Вы также можете задавать сокращенно непрерывные диапазоны:
[0-9] это сокращенное от [0123456789]

Для уточнения количества повторений наборов символов применяется модификатор \{min,max\}
Чтобы найти 5000 руб 33 коп — [0-9]\{5,\} руб\. [0-9]\{2\} коп\. (отсутствие запятой и максимального значения задаёт точное количество ожидаемых повторов элемента шаблона)

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

Прокомментировать

XHTML: Вы можете использовать эти тэги для форматирования текста: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>