Что такое RegExp?

История

Регулярные выражения (англ. Regular Expressions, сокр. RegExp) — система синтаксического разбора текстовых фрагментов по формализованному шаблону, основанная на системе записи образцов для поиска. Регулярные выражения произвели прорыв в электронной обработке текста в конце XX века, и являются развитием символов-джокеров.

Синтаксис

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

Большинство символов в регулярном выражении представляют сами себя.

Напимер: a, b, z, 1, 2, 9.

Специальных символов [ ] \ ^ $ . | ? * + ( ) { }

Спец. символы  могут быть экранированы символом \ (обратная косая черта) для представления их в качестве символов текста.

Например: \[, \^, \)

Можно экранировать целую последовательность символов, заключив её между \Q и \E.

Например: \Q+-*/\E это аналогично записи \+\-\*\/

Ниже приведена таблица спецсимволов с описанием, далее они все будут подробно разобраны.

$ Соответствует позиции в конце входной строки. Для того чтобы задать соответствие самому символу $, нужно использовать \$.
( ) Помечает начало и конец подвыражения. Такие подвыражения могут быть сохранены для дальнейшего их использования. Для соответствия непосредственно самим этим символам, используйте \( и \).
* Соответствует повторению предшествующего подвыражения 0 или более раз. Чтобы задать соответствие самому символу *, используйте \*.
+ Соответствует повторению предшествующего подвыражения 1 или более раз. Чтобы соответствовать самому символу +, используйте \+.
. Соответствует любому одиночному символу, за исключением символа новой строки \n. Для соответствия . используйте \.
[ ] Помечает начало и окончание символьного диапазона, размещенного в квадратных скобках. Для соответствия [ используйте \[.
? Соответствует повторению предшествующего подвыражения 0 или 1 раз или является индикатором «нежадности» выражения. Для соответствия символу ? используйте \?.
\ Помечает следующий за ним символ или как специальный, как букву(литерал), как обратную ссылку или как восьмеричную escape-последовательность. Например, ‘n’ соответствует символу ‘n’, а ‘\n’ соответствует символу новой строки. Последовательность ‘\\’ соответствует «\», ‘\(‘ соответствует «(«.
^ Соответствует позиции в начале входной строки, за исключением случаев использования данного символа в выражениях, помещенных в квадратные скобки, где он тогда отрицает стоящий за ним набор символов. Для указания соответствия самому символу ^ используйте \^.
{ } Помечает начало и окончания выражения-квантификатора. Для соответствия самому символу { используйте \{.
| Указывает на выбор между двумя элементами. Чтобы соответствовать самому символу | используйте \|.

Любой символ

Метасимвол . (точка) означает один любой символ и соответствует любому одиночному символу, кроме «\n».

Например:  шаблон t.st соответствует словам test, tast, ttst, t1st, t3st, t-st и так далее с любым сымволом.

Наборы символов

Набор символов в квадратных скобках [ ] именуется символьным классом и позволяют указать, что на данном месте в строке может стоять один из перечисленных символов.

Например: [abc] задаёт возможность появления в тексте одного из трёх указанных символов, а [123] задаёт соответствие одной из цифр.

Возможно указание диапазонов символов.

Например: [A-Za-z] соответствует буквам латинского алфавита.

Если требуется указать символы, которые не входят в указанный набор, то используют символ ^ внутри квадратных скобок.

Например: [^0-9] означает любой символ, кроме цифр.

Положение внутри строки

Ниже описаны символы, позволяющие определить положение регулярного выражения относительно элементов текста:

  • начала и конца строки;
  • начала и концаслова.
Спецсимвол Описание Пример Результат
^ Начало строки ^a aaa aaa
$ Конец строки a$ aaa aaa
\b Границы слова a\b aaa aaa
\ba aaa aaa
\B Исключение границы слова \Ba\B aaa aaa

Комментарии закрыты.