Skip to content

Токени regex пояснені

Усі основні токени regex: якорі, класи символів, квантифікатори, групи та прапорці. Значення кожного з них із конкретним збігом. Швидка довідка-супутник до інструменту Regex Tester.

Токени regex комбінуються: складіть якір, клас символів і квантифікатор, щоб побудувати шаблон. ^ закріплює початок, \d відповідає цифрі, а {2,4} задає кількість повторень. Об'єднайте їх у ^\d{2,4}$, щоб знайти весь рядок із двох–чотирьох цифр. Читайте шаблон зліва направо, по одному токену. Супутній інструмент Regex Tester дає випробувати будь-який із цих токенів наживо на власному тексті.

Довідкова таблиця · 55 записиВідкрити інструмент regex-tester →
55 of 55 rows
Якори
Відповідає позиції на початку рядка, а з прапорцем 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): ігнорує неекрановані пробіли та #-коментарі всередині шаблону./a b/x → ab