Шпаргалка синтаксису регулярних виразів
Ця сторінка містить загальну шпаргалку всіх можливостей синтаксису RegExp
шляхом компіляції вмісту всіх статей посібника з RegExp
. За потреби більше інформації про конкретну тему можна знайти за посиланням на відповідному заголовку, або ж у посібнику.
Класи символів
Класи символів розрізняють ґатунки символів, наприклад, розрізняють літери й цифри.
Символи | Значення |
---|---|
[xyz]
|
Клас символів. Дає збіг з одним із символів у дужках. За допомогою дефіса можна задати діапазон символів, але якщо дефіс стоїть першим або останнім символом у квадратних дужках, то сприймається як буквальний символ дефіса, що є частиною описаного класу символів.
Наприклад,
Наприклад,
Наприклад, |
|
Клас символів з відкиданням, або ж доповненням. Тобто він дасть збіг з чим завгодно, чого немає в квадратних дужках. За допомогою дефіса можна задати діапазон символів, але якщо дефіс стоїть першим або останнім символом у квадратних дужках, то сприймається як буквальний символ дефіса, що є частиною описаного класу символів. Наприклад, Примітка: Символ ^ може також вказувати на початок введення. |
. |
Має одне з наступних значень:
Зверніть увагу на те, що позначка багаторядковості
Позначка "dotAll" |
\d |
Дає збіг з будь-якою (арабською) цифрою. Рівносильний |
\D |
Дає збіг з будь-яким символом, котрий не є (арабською) цифрою. Рівносильний |
\w |
Дає збіг з будь-яким алфавітно-цифровим символом базового латинського алфавіту, включно з підкресленням. Рівносильний |
\W |
Дає збіг з будь-яким символом, що не є алфавітно-цифровим символом базового латинського алфавіту. Рівносильний |
\s |
Дає збіг з пробільним символом, в тому числі пробілом, табуляцією, розривом сторінки, розривом рядка та іншими пробілами Unicode. Рівносильний |
\S |
Дає збіг з символом, котрий не є пробільним. Рівносильний |
\t |
Дає збіг з горизонтальною табуляцією. |
\r |
Дає збіг з поверненням каретки. |
\n |
Дає збіг з розривом рядка. |
\v |
Дає збіг з вертикальною табуляцією. |
\f |
Дає збіг з розривом сторінки. |
[\b] |
Дає збіг із забоєм. Якщо шукаєте символ кінця слова (\b ), то погляньте в Межах.
|
\0 |
Дає збіг з символом NUL. Не ставте після цього класу інші цифри. |
\cX
|
Дає збіг з контрольним символом, що використовує каретний запис, де "X" – літера з діапазону A–Z (відповідає кодовим точкам |
\xhh
|
Дає збіг з символом із кодом hh (за двома шістнадцятковими цифрами).
|
\uhhhh
|
Дає збіг з кодовою одиницею UTF-16, чиє значення – hhhh (задане чотирма шістнадцятковими цифрами).
|
\u{hhhh} або \u{hhhhh}
|
(Лише тоді, коли задана позначка u .) Дає збіг з символом, чиє значення Unicode – U+hhhh або U+hhhhh (задається шістнадцятковими цифрами).
|
\ |
Позначає те, що наступний символ повинен сприйматися по-особливому, або ж бути "екранованим". Має один з двох наслідків.
Зверніть увагу, що певні символи, як то
Примітка: Щоб отримати буквальний збіг з цим символом, його треба екранувати самим собою. Інакше кажучи, для пошуку |
x|y
|
Диз'юнкція: Дає збіг або з "x", або з "y". Кожна компонента, відділена вертикальною рискою (
Примітка: Диз'юнкція – іще один спосіб задати "варіанти вибору", але вона не є класом символів. Диз'юнкції не є атомарними: необхідно застосувати групу, аби зробити її частиною більшого патерну. Патерн |
Судження
Судження включають межі, котрі позначають початок і кінець рядків та слів, а також інші патерни, котрі в певний спосіб позначають те, що збіг можливий (включно з зазиральними, озиральними та умовними виразами).
Судження типу межі
Символи | Значення |
---|---|
^ |
Дає збіг з початком введення. Якщо задана позначка багаторядковості, то також дає збіг зразу після символу розриву рядка. Наприклад, Примітка: Цей символ має інакше значення, коли зустрічається на початку класу символів. |
$ |
Дає збіг з кінцем введення. Коли задана позначка багаторядковості, то також дає збіг зразу перед символом розриву рядка. Наприклад, |
\b |
Дає збіг з межею слова. Це положення, в якому перед або після алфавітно-цифрового символу не стоїть інший алфавітно-цифровий символ, як то між літерою та пробілом. Зверніть увагу, що межа слова, що дала збіг, не включається у збіг. Інакше кажучи, довжина збігу з межею слова – нуль. Приклади:
Про збіг із символом забою ( |
\B |
Дає збіг з положенням, котре не є межею слова. Це таке положення, в якому і попередній, і наступний символи належать до одно типу: Або обидва алфавітно-цифрові, або обидва не алфавітно-цифрові, наприклад, між двома літерами або між двома пробілами. Початок і кінець рядка вважаються не алфавітно-цифровими символами. Так само, як зі збігом межі слова, збіг з не межею слова не включається до збігу. Наприклад, |
Інші судження
Примітка: Символ
?
також може застосовуватись як квантор.
Символи | Значення |
---|---|
x(?=y) |
Судження зазирання: Дає збіг з "x" лише тоді, коли після "x" стоїть "y". Наприклад, / |
x(?!y) |
Судження зазирання з запереченням: Дає збіг з "x" лише тоді, коли після "x" не стоїть "y". Наприклад, |
(?<=y)x |
Судження озирання: Дає збіг з "x" лише тоді, коли перед "x" стоїть "y". Наприклад, |
(?<!y)x |
Судження озирання з запереченням: Дає збіг з "x" лише тоді, коли перед "x" не стоїть "y". Наприклад, |
Групи та зворотні посилання
Групи та зворотні посилання вказують на групи символів-виразів.
Символи | Значення |
---|---|
(x) |
Група захоплення: Дає збіг з
Регулярний вираз може мати декілька груп захоплення. Як наслідок, збіги з групами захоплення здебільшого зберігаються в масиві, чиї елементи мають такий же порядок, як їхні ліві дужки в патерні. Зазвичай це просто порядок самих груп захоплення. Це стає важливим, коли групи захоплення мають вкладеність. Збіги доступні через індекси елементів результату ( Групи захоплення шкодять швидкодії. Коли немає потреби згадувати підрядки, що збіглися — слід віддавати перевагу дужкам без захоплення (дивіться нижче).
|
(?<Name>x) |
Іменована група захоплення: Дає збіг з "x", і зберігає його у властивості `groups` повернених збігів, за ім'ям, заданим у вигляді
Наприклад, для виділення з телефонного номера коду місцевості в Сполучених штатах можна застосувати |
(?:x) |
Група без захоплення: Дає збіг з "x", але не запам'ятовує цього збігу. Підрядок збігу не можна відтворити з елементів результівного масиву ([1], …, [n] ) чи властивостей ($1, …, $9 ) заздалегідь означеного об'єкта RegExp .
|
\n
|
Де "n" – це додатне ціле число. Зворотне посилання на останній підрядок, що дав збіг з дужками номер n у регулярному виразі (рахуючи за лівою дужкою). Наприклад, |
\k<Name> |
Зворотне посилання на останній підрядок збігу Іменованої групи захоплення , заданої як
Наприклад,
Примітка: |
Квантори
Квантори позначають кількість символів або виразів, котрі повинні давати збіг.
Примітка: У тексті нижче елементами звуться не лише окремі символи, а й також класи символів і групи та зворотні посилання.
Символи | Значення |
---|---|
x*
|
Дає збіг з попереднім елементом "x" 0 або більше разів. Наприклад, |
x+
|
Дає збіг з попереднім елементом "x" 1 або більше разів. Рівносильно |
x?
|
Дає збіг з попереднім елементом "x" 0 або 1 раз. Наприклад,
Бувши застосованим зразу після одного з наступних кванторів: |
x{n}
|
Де "n" – це додатне ціле число, дає збіг з рівно "n" входженнями попереднього елемента "x". Наприклад, |
x{n,}
|
Де "n" – це додатне ціле число, дає збіг зі щонайменше "n" входженнями попереднього елемента "x". Наприклад, |
x{n,m}
|
Де "n" – це 0 або додатне ціле число, а "m" – ціле число, і |
|
Усталено квантори штибу
|