Регулярные выражения
Основы регулярных выражений
Приоритет оператора (от высшего к низшему)
() # скобка
*+?{} # счетчики
/…/ ^$\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"