Усі основні токени regex: якорі, класи символів, квантифікатори, групи та прапорці. Значення кожного з них із конкретним збігом. Швидка довідка-супутник до інструменту Regex Tester.
Токени regex комбінуються: складіть якір, клас символів і квантифікатор, щоб побудувати шаблон. ^ закріплює початок, \d відповідає цифрі, а {2,4} задає кількість повторень. Об'єднайте їх у ^\d{2,4}$, щоб знайти весь рядок із двох–чотирьох цифр. Читайте шаблон зліва направо, по одному токену. Супутній інструмент Regex Tester дає випробувати будь-який із цих токенів наживо на власному тексті.
Відповідає позиції на початку рядка, а з прапорцем m — на початку кожного рядка тексту.
^He → He
Відповідає позиції в кінці рядка, а з прапорцем m — у кінці кожного рядка тексту.
lo$ → lo
Відповідає межі слова: позиції між символом слова та символом, який не є символом слова.
\bcat\b → cat
Відповідає позиції, що не є межею слова: між двома символами слова або двома символами не-слова.
\Bar → ar
Класи символів
Відповідає будь-якому одному символу, крім розриву рядка, якщо не встановлено прапорець s.
a.c → abc
Відповідає будь-якій цифрі від 0 до 9.
\d → 7
Відповідає будь-якому символу, який не є цифрою.
\D → a
Відповідає будь-якому символу слова: літері, цифрі або підкресленню.
\w → _
Відповідає будь-якому символу, який не є символом слова.
\W → !
Відповідає будь-якому пробільному символу: пробілу, табуляції або розриву рядка.
a\sb → a b
Відповідає будь-якому символу, який не є пробільним.
\S → a
Відповідає будь-якому одному символу з перелічених у квадратних дужках.
[aeiou] → e
Відповідає будь-якому символу, якого немає в переліку всередині дужок.
[^aeiou] → s
Відповідає будь-якому одному символу із заданого діапазону, від a до z.
[a-z] → m
Відповідає будь-якому одному символу, зокрема розриву рядка; поширений ідіом для точки, що охоплює рядки.
[\s\S] → \n
Відповідає будь-якій літері Unicode з будь-якої писемності, якщо встановлено прапорець u.
\p{L} → é
Відповідає будь-якому числовому символу Unicode з будь-якої писемності, якщо встановлено прапорець u.
\p{N} → ٣
Екранування: відповідає одному символу розриву рядка (line feed).
\n → line feed
Екранування: відповідає одному символу табуляції.
\t → tab
Екранування: відповідає одному символу повернення каретки (carriage return).
\r → carriage return
Відповідає одному символу із заданим двозначним шістнадцятковим кодом.
\x41 → A
Відповідає одному символу із заданою шістнадцятковою кодовою точкою, якщо встановлено прапорець u.
\u{1F600} → 😀
Перетин класів із прапорцем v: відповідає символам, що належать обом множинам водночас.
[[a-z]&&[^aeiou]] → t
Квантифікатори
Відповідає попередньому токену нуль або більше разів.
ab* → abbb
Відповідає попередньому токену один або більше разів.
a+ → aaa
Відповідає попередньому токену нуль або один раз, роблячи його необов'язковим.
colou?r → color
Відповідає попередньому токену рівно n разів.
a{3} → aaa
Відповідає попередньому токену n або більше разів.
a{2,} → aaaa
Відповідає попередньому токену від n до m разів включно.
a{2,4} → aaa
Лінивий квантифікатор: відповідає попередньому токену нуль або більше разів, беручи щонайменше можливе.
<.*?> on <a><b> → <a>
Лінивий квантифікатор: відповідає попередньому токену один або більше разів, беручи щонайменше можливе.
\d+? on 123 → 1
Лінивий квантифікатор: відповідає попередньому токену нуль або один раз, надаючи перевагу нулю.
ab?? on ab → a
Лінивий квантифікатор: відповідає попередньому токену від n до m разів, беручи щонайменше можливе.
a{1,3}? on aaa → a
Позесивний квантифікатор (PCRE): відповідає попередньому токену нуль або більше разів і утримує взяте, ніколи не повертаючись назад, щоб спробувати інші розбиття.
.*+a on aaa → no match
Групи та альтернація
Група захоплення: відповідає послідовності та запам'ятовує її для зворотних посилань.
(ab)+ → abab
Група без захоплення: відповідає послідовності, не запам'ятовуючи її.
(?:ab)+ → abab
Позитивний випереджальний погляд: відповідає, якщо наступні символи — abc, не споживаючи їх.
a(?=b) → a
Негативний випереджальний погляд: відповідає, якщо наступні символи — не abc, не споживаючи їх.
a(?!b) → a
Зворотне посилання: відповідає точному тексту, який захопила група 1.
(a)\1 → aa
Альтернація: відповідає виразу до вертикальної риски або після неї.
cat|dog → dog
Іменована група захоплення: відповідає послідовності та запам'ятовує її під заданим ім'ям.
(?<year>\d{4}) → year = 2026
Позитивний ретроспективний погляд: відповідає, якщо попередні символи — abc, не споживаючи їх.
(?<=a)b → b
Негативний ретроспективний погляд: відповідає, якщо попередні символи — не abc, не споживаючи їх.
(?<!a)b → b
Іменоване зворотне посилання: відповідає точному тексту, який захопила іменована група.
(?<w>\w+) \k<w> → the the
Атомарна група (PCRE): відповідає послідовності один раз і ніколи не повертається всередину неї.
(?>a+)ab on aab → no match
Скидання гілок (PCRE): альтернація, у якій кожна гілка повторно використовує ті самі номери груп.
(?|(cat)|(dog)) → \1 = dog
Прапорці
Глобальний прапорець: знаходить усі збіги в рядку, а не лише перший.
/a/g on aaa → a, a, a
Прапорець без урахування регістру: ігнорує регістр літер під час пошуку.
/Hi/i → hi
Прапорець багаторядковості: трактує ^ і $ як початок і кінець кожного рядка.
/^a/m matches at the start of each line
Прапорець dotall: дозволяє точці збігатися також із розривом рядка.
/a.b/s → a\nb
Прапорець unicode: трактує шаблон і вхідні дані як кодові точки Unicode.
/\u{1F600}/u → 😀
Прапорець sticky: збігається лише у точній позиції, заданій lastIndex.
/ab/y matches only at lastIndex
Прапорець indices: додає до результату позиції початку й кінця кожного збігу.
/b/d on abc → indices [1, 2]
Прапорець unicode sets: суворіший за u, який також дозволяє операції над множинами всередині класу символів.
/[a-z&&[^aeiou]]/v → t
Розширений прапорець (PCRE): ігнорує неекрановані пробіли та #-коментарі всередині шаблону.