Метасимволы в регулярных выражениях

Метасимволы регулярных выражений

Метасимвол Описание Пример
^ Циркумфлекс, крышка. Обозначает начало строки. ^text Совпадает, если строка начинается с ‘text’, например text или text1234abcd
$ Доллар. Обозначает конец строки text$ Совпадает, если строка заканчивается ‘text’, например text или 1234abcdtext
^text$ Совпадает только с ‘text’
\< Граница слова позиция в начале слова
/> Граница слова позиция в конце слова
[…] Символьный класс (character class). Используется, когда необходимо перечислить символы, которые могут находится в данной позиции текста m[ae]n Соответствует ‘man’ и ‘men’
Символьный класс может содержать интервалы, класс [0123456789abcdABCD] записывают в виде [0-9a-dA-D]. Интервалы можно объединять с литералами: выражение [0-9A-D_!.?] совпадает с цифрой, символами A,B,C,D, подчеркиванием, точкой и вопросительным знаком.
[^…] Инвертированный символьный класс [^1-6] совпадает с символами, не принадлежащими интервалу 1-6. Префикс ^ инвертирует список
. Совпадает с одним произвольным символом
| Одно из нескольких выражений Bob|Robert — одно выражение, совпадающее с любой из этих строк. Bob|Rober|Ivan|Denis
(…) Ограничение действия
Квантификаторы
? Метасимвол ? означает, что предшествующий ему символ является необязательным. Он помещается сразу же вслед за символом, который может появиться в этом месте в выражении, но его отсутствие не должно влиять на успешный результат поиска. Слова color и colour отличаются только только символом u, для их поиска можно использовать выражение colou?r
+ Метасимвол + обозначает один или несколько экземпляров непосредственно предшествующего элемента
* Метасимвол * обозначает любое количество экземпляров элемента (в том числе и нулевое). Иначе говоря, «найти столько экземпляров, сколько это возможно, но при необходимости обойтись и без них».
Интервалы совпадений
{min,max} Метапоследовательность для явного определения минимального и максимального количества совпадений. Эта конструкция называется Интервальным квантификатором. [a-zA-Z]{1,5} совпадает с одной, двумя, тремя, четырьмя и пятью буквами. Запись {0,1} эквивалентна метасимволу ?.
{n} N совпадений
{n,} N и больше совпадения
Обратные ссылки
(…) Обратные ссылки позволяют искать новый текст, который совпадает с другим текстом, совпавшим с предшествующей частью выражения, причем на момент написания выражения этот текст неизвестен. \<([a-zA-Z]+) +\1\> — выражение ищет повторяющиеся слова.
Экранирование
\ Для поиска символа, который интерпретируется как метасимвол. \. — совпадает с . Такая последовательность называется «экранированной точкой». Экранирование может выполняться со всеми стандартными метасимволами.

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

Регулярные выражения (regular expressions, сокр. RegExp, RegEx, регэ́кспы или ре́гексы) — это строка образец (pattern), состоящая из символов и метасимволов, задающих параметры поиска. Статья про регулярные выражения на wikipedia.org. Очень рекомендую к прочтению Фридл Регулярные выражения. Здесь я обозначу основные тезисы использования регэкспов на практике.