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

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

Приоритет оператора (от высшего к низшему)

()            # скобка
*+?{}         # счетчики
/…/ ^$\b    # последовательности и якоря
|             # дизъюнкция

Счетчики

*         # >=0 вхождения предыдущего символа или выражения
+         # >=1 вхождения предыдущего символа или выражения
?         # 0/1 появление предыдущего символа или выражения (необязательный индикатор)
{n}       # n вхождения предыдущего символа или выражения
{n,m}     # от n до m вхождений предыдущего символа или выражения
{n,}      # не менее n вхождений предыдущего символа или выражения

Прямое соответствие

/word/    # соответствует первому вхождению шаблона "word"

Подстановочные знаки

.           # единичное появление любого символа (подстановочный знак)
/pref.*suf/ # соответствует любой последовательности, начинающейся с "pref" и заканчивающейся на "suf"

Экранированные символы

\*    # звездочка
\.    # период
\?    # вопросительный знак
\n    # новая строка
\t    # табуляция
\d    # любая цифра.                  Сокращение для [0-9]
\D    # любая не цифра.               Сокращение для [^0-9]
\s    # любой разделитель пробелов.   Сокращение для [_\r\t\n\f]
\S    # любые не пробелы.             Сокращение для [^\s]

Дизъюнктивный список

/[wW]ilson/     # соответствует "Wilson" или "wilson". Или эквивалентно /(w|W)ilson/
/[abc]/         # соответствует "a" или "b" или "c"
/[1234567890]/  # соответствует любой цифре. Сокращение: /[0-9]/
/[A-Z]/         # соответствует символу верхнего регистра
/[a-z]/         # соответствует символу нижнего регистра

Отрицание

[^A-Z]          # не соответствует символам верхнего регистра
[^Ss]           # не соответствует ни "S" ни "s"
[^\.]           # не соответствует периодам

Примечание:

[e^]        # соответствует либо "e" либо "^"
a^b         # соответствует образцу "a^b"

Клини закрытие

/a*/      # соответствует нулю или более "a"
/aa*/     # соответствует одному из нескольких "a". Или эквивалентно /a+/
/[ab]*/   # соответствует шаблонам, как "aaaa", "abab", "bbba" и т.п. 

Якоря

^     # начало строки
$     # конец строки
\b    # граница слова (любая последовательность цифр, знаков подчеркивания или букв)

Применение:

/^The dog\.$/   # соответствует строке, содержащей только "The dog."
/\bthe\b/       # соответствует "the" но не "other"
Читать по теме
Интересные статьи