Шпаргалка з основ регулярних виразів

Регулярний вираз (regex) — це шаблон для пошуку тексту. Кожен символ, або токен, змінює поведінку шаблону. Шпаргалка нижче перелічує найвживаніші токени з простим поясненням і невеличким прикладом для копіювання.

Оновлено:

ТокенЗначенняПриклад
.Matches any single character except newline.a.c matches abc, a c
*Matches the preceding token zero or more times.ab* matches a, abb
+Matches the preceding token one or more times.ab+ matches ab, abb
?Makes the preceding token optional (zero or one).colou?r matches color, colour
[]Character set: matches any one character inside.[aeiou] matches any vowel
[^]Negated set: matches any character NOT inside.[^0-9] matches any non-digit
\dMatches any digit (0-9).\d+ matches 42, 007
\wMatches any word character (a-z, A-Z, 0-9, _).\w+ matches hello_1
\sMatches any whitespace (space, tab, newline).a\sb matches a b
^Anchors the match to the start of a line/string.^Hello matches start of string
$Anchors the match to the end of a line/string.world$ matches end of string
|Alternation: matches the pattern on either side.cat|dog matches cat or dog
()Groups a sub-pattern (and captures it).(ab)+ matches ab, abab
{n,m}Quantifier: match the preceding token n to m times.a{2,4} matches aa, aaaa
(?i)Inline flag: makes the pattern case-insensitive.(?i)hello matches HELLO

Примітки

Часті запитання

З чим збігається крапка (.) ?
Типово крапка збігається з будь-яким одним символом, крім переведення рядка. Щоб збіглася сама крапка, її екранують як \.
У чому різниця між * і + ?
Зірочка * збігається з попереднім токеном нуль і більше разів, тому 'ab*' збігається й з 'a'. Плюс + потребує принаймні один раз — збігається з 'ab', але не з самим 'a'.
Як збігти цифру або літерно-цифровий символ?
Скористайтеся \d для будь-якої цифри (0-9) і \w для символу слова (літери, цифри, підкреслення). Заперечення — \D і \W.
Для чого потрібні ^ і $ ?
^ прив'язує збіг до початку рядка або тексту, $ — до кінця. Разом ^шаблон$ змушує збігтися весь текст цілком.