Regular Expression Syntax Quick Reference

Регулярні вирази, відомі також як шаблони, є текстовим шаблоном, який зазвичай використовується для пошуку, заміни та контролю тексту. Вони складаються переважно з букв від a до z, а також деяких спеціальних символів. Область застосування регулярних виразів надзвичайно широка, починаючи з їх популяризації в Unix і продовжуючи широким використанням у Scala, PHP, C#, Java, C++, Objective-C, Perl, Swift, VBScript, JavaScript, Ruby та Python тощо. Вивчення регулярних виразів насправді є навчанням дуже гнучкого логічного мислення, що дозволяє швидко досягати контролю над рядками через прості та швидкі методи.
Регулярний символ Опис
\ Позначає наступний символ як спеціальний символ або як літеральний символ, або як зворотне посилання, або як восьмиричний еквівалент. Наприклад, “n" збігається зі символом "n". "\n" збігається з переносом рядка. Послідовність "\\" збігається з "\", а "\(" збігається з "(".
^ Збігається з початковою позицією вхідного рядка. Якщо встановлено властивість Multiline для об'єкта RegExp, ^ також збігається з позицією після "“\n" або "\r".
$ Збігається з кінцевою позицією вхідного рядка. Якщо встановлено властивість Multiline для об'єкта RegExp, $ також збігається з позицією перед "“\n" або "\r".
* Збігається з попереднім підвибором нуль разів або більше. Наприклад, zo* може збігатися з "“z" і "zoo". * еквівалентно {0,}.
+ Збігається з попереднім підвибором один раз або більше. Наприклад, “zo+" може збігатися з "zo" і "zoo", але не може збігатися з "z". + еквівалентно {1,}.
? Збігається з попереднім підвибором нуль разів або один раз. Наприклад, “do(es)?" може збігатися з "does" або "does" у "do". ? еквівалентно {0,1}.
{n} n є невід’ємним цілим числом. Збігається з певним n разів. Наприклад, “o{2}" не може збігатися з "o" у "Bob", але може збігатися з двома o в "food".
{n,} n є невід’ємним цілим числом. Збігається принаймні n разів. Наприклад, “o{2,}" не може збігатися з "Bob" у "o", але може збігатися з усіма o в "foooood". "o{1,}" еквівалентно "o+". "o{0,}" еквівалентно "o*".
{n,m} m та n є невід’ємними цілими. n <= m. Збігається щонайменше n разів і максимально m разів. Наприклад, “o{1,3}" відповідатиме трьом першим o у "fooooood". "o{0,1}" еквівалентно "o?". Зверніть увагу, що між комою та двома числами не повинно бути пробілу.
? Коли цей символ йде безпосередньо після будь-якого іншого обмежувача (*, +, ?, {n}, {n,}, {n,m}), режим співпадіння є неагресивним. Неегресивний режим намагається знайти якнайменше відповідність пошуку рядка, тоді як за замовчуванням агресивний режим намагається знайти якомога більше. Наприклад, для рядка “oooo”, "o+?" буде збігатися з єдиною "o", тоді як "o+" буде збігатися з усіма "o".
. Збігається з будь-яким окремим символом, крім “\n". Щоб збігатися з будь-яким символом, що включає в себе "\n", використовуйте шаблон, як-от "(.|\n)".
(pattern) Збігається з pattern і захоплює це збіг. Отримане збіг можна отримати з набора Matches, у VBScript використовується колекція SubMatches, а у JScript властивості $0…$9. Щоб збігатися з символом дужки, використовуйте “\(" або "\)".
(?:pattern) Збігається з pattern, але не захоплює результати збігу, тобто це – не захоплюючий збіг, не буде збережено для використання пізніше. Це корисно при використанні символьних операторів "“(|)" для об'єднання різних частин шаблона. Наприклад, "industr(?:y|ies)" є більш стислим виразом в порівнянні з "industry|industries".
(?=pattern) Спрямований позитивний перевірка, збігається з рядком, що починається з pattern. Це не захоплюючий збіг, тобто це збіг не потребує отримання для подальшого використання. Наприклад, “Windows(?=95|98|NT|2000)" збігається з "Windows2000" у "Windows", але не може збігатися з "Windows3.1". Перевірка не споживає символів, тобто після збігу наступний пошук починається відразу після останнього збігу, а не після символів, що включають перевірку.
(?!pattern) Спрямований негативний перевірка, збігається з рядком, що не відповідає pattern. Це не захоплюючий збіг, тобто це збіг не потребує отримання для подальшого використання. Наприклад, “Windows(?!95|98|NT|2000)" може збігатися з "Windows3.1" у "Windows", але не може бути отримане з "Windows2000". Перевірка не споживає символів, тобто після збігу наступний пошук починається відразу після останнього збігу, а не після символів, що включають перевірку.
(?<=pattern) Зворотний позитивний перевірка, аналогічна спрямованому позитивному перевірка, лише напрямок протилежний. Наприклад, “(?<=95|98|NT|2000)Windows" може збігатися з "2000Windows" у "Windows", але не може бути отримане з "3.1Windows" у "Windows".
(?<!pattern) Зворотний негативний перевірка, аналогічна спрямованому негативному перевірка, лише напрямок протилежний. Наприклад, “(?<!95|98|NT|2000)Windows" може збігатися з "3.1Windows" у "Windows", але не може збігатися з "2000Windows" у "Windows".
x|y Збігається зі x або y. Наприклад, “z|food" може збігатися з "z" або "food". "(z|f)ood" відповідатиме "zood" або "food".
[xyz] Сет символів. Збігається з будь-яким символом, що міститься. Наприклад, “[abc]" може збігатися з "a" в "plain".
[^xyz] Негативний набір символів. Збігається з будь-яким символом, що не міститься. Наприклад, “[^abc]" може збігатися з "p" в "plain".
[a-z] Діапазон символів. Збігається з будь-яким символом у вказаному діапазоні. Наприклад, “[a-z]" може збігатися з будь-якою малою літерою з "a" до "z".
[^a-z] Негативний діапазон символів. Збігається з будь-яким символом, що не входить у зазначений діапазон. Наприклад, “[^a-z]" може збігатися з будь-яким символом, який не входить у "a" до "z".
\b Збігається з кордоном слів, що означає позицію між словом і пробілом. Наприклад, “er\b може збігатися з "never" у "er", але не може бути отримане з "verb" у "er".
\B Збігається з некордоном слів. “er\B" може збігатися з "verb" в "er", але не може бути отримане з "never" у "er".
\cx Збігається з контрольним символом, зазначеним x. Наприклад, \cM збігається з символом Control-M або переносом рядка. Значення x має бути одним з A-Z або a-z. В іншому випадку, c вважається літеральним символом "“c".
\d Збігається з цифровим символом. Еквівалентно [0-9].
\D Збігається з не цифровим символом. Еквівалентно [^0-9].
\f Збігається з символом нової сторінки. Еквівалентно \x0c та \cL.
\n Збігається з символом переносу рядка. Еквівалентно \x0a та \cJ.
\r Збігається з символом повернення каретки. Еквівалентно \x0d та \cM.
\s Збігається з будь-яким пробільним символом, включаючи пробіли, табуляції, символи перерви сторінки тощо. Еквівалентно [ \f\n\r\t\v].
\S Збігається з будь-яким непробільним символом. Еквівалентно [^ \f\n\r\t\v].
\t Збігається з символом табуляції. Еквівалентно \x09 та \cI.
\v Збігається з вертикальним символом табуляції. Еквівалентно \x0b та \cK.
\w Збігається з будь-яким словесним символом, включаючи підкреслення. Еквівалентно "“[A-Za-z0-9_]".
\W Збігається з будь-яким не словесним символом. Еквівалентно "“[^A-Za-z0-9_]".
\xn Збігається з n, де n – це шестигранне значення. Шестигранне значення повинно бути точно двох цифр, наприклад, “\x41" збігається з "A". "\x041" еквівалентно "\x04&1". У регулярних виразах можна використовувати ASCII-коду.
\num Збігається з num, де num – це позитивне ціле число. Відсылка для отриманих збігів, наприклад, “(.)\1" збігається з двома послідовними однаковими символами.
\n Позначає восьмиричне значення або зворотнє посилання. Якщо n попереджено хоча б n отриманими піддержками, то n буде зворотним посиланням. В іншому випадку, якщо n є восьмиричним числом (0-7), то n є восьмиричним значенням.
\nm Позначає восьмиричне значення або зворотнє посилання. Якщо nm отримало хоча б nm підтримаєм, то nm буде зворотним посиланням. Якщо nm отримало хоча б n отриманими, то n буде зворотним посиланням, за яким слідує символ m. Якщо жодні попередні умови не виконуються, якщо n і m є восьмиричними числами (0-7), тоді nm має відповідати восьмиричному значенню nm.
\nml Якщо n є восьмиричним числом (0-3), а m та l є восьмиричними числами (0-7), тоді це відповідатиме восьмиричному значенню nml.
\un Збігається з n, де n є символом Unicode, представленим чотирма шестигранними цифрами. Наприклад, \u00A9 збігається з символом авторського права (©).
Поширені регулярні вирази
Ім'я користувача /^[a-z0-9_-]{3,16}$/
Пароль /^[a-z0-9_-]{6,18}$/
Пароль 2 (?=^.{8,}$)(?=.*\d)(?=.*\W+)(?=.*[A-Z])(?=.*[a-z])(?!.*\n).*$ (складається з цифр/великої літери/малої літери/знаків пунктуації, усі чотири повинні бути присутніми, більше 8 символів)
Шістнадцяткове значення /^#?([a-f0-9]{6}|[a-f0-9]{3})$/
Електронна пошта /^([a-z0-9_\.-]+)@([\da-z\.-]+)\.([a-z\.]{2,6})$/
/^[a-z\d]+(\.[a-z\d]+)*@([\da-z](-[\da-z])?)+(\.{1,2}[a-z]+)+$/ або \w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
URL /^(https?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$/ або [a-zA-z]+://[^\s]*
IP адреса /((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?)/
/^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/ або ((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?)
HTML теги /^<([a-z]+)([^<]+)*(?:>(.*)<\/\1>|\s+\/>)$/ або <(.*)(.*)>.*<\/\1>|<(.*) \/>
Видалити код\\коментарі (?<!http:|\S)//.*$
Збіг двобайтових символів (включаючи китайські символи) [^\x00-\xff]
Китайські символи (літери) [\u4e00-\u9fa5]
Діапазон китайських символів в кодуванні Unicode /^[\u2E80-\u9FFF]+$/
Китайські та повновугільні знаки (символи) [\u3000-\u301e\ufe10-\ufe19\ufe30-\ufe44\ufe50-\ufe6b\uff01-\uffee]
Дата (рік-місяць-день) (\d{4}|\d{2})-((0?([1-9]))|(1[1|2]))-((0?[1-9])|([12]([1-9]))|(3[0|1]))
Дата (місяць/день/рік) ((0?[1-9]{1})|(1[1|2]))/(0?[1-9]|([12][1-9])|(3[0|1]))/(\d{4}|\d{2})
Час (години:хвилини, 24-годинний формат) ((1|0?)[0-9]|2[0-3]):([0-5][0-9])
Фіксований номер телефону Китаю (\d{4}-|\d{3}-)?(\d{8}|\d{7})
Номер мобільного телефону Китаю 1\d{10}
Поштовий індекс Китаю [1-9]\d{5}
Ідентифікаційний номер Китаю (15 або 18 знаків) \d{15}(\d\d[0-9xX])?
Невід’ємне ціле число (позитивне число або нуль) \d+
Позитивне ціле число [0-9]*[1-9][0-9]*
Від’ємне ціле число -[0-9]*[1-9][0-9]*
Ціле число -?\d+
Десяткове число (-?\d+)(\.\d+)?
Порожні рядки \n\s*\r або \n\n(editplus) або ^[\s\S ]*\n
Номер QQ [1-9]\d{4,}
Слова, що не містять abc \b((?!abc)\w)+\b
Збіг початкових і кінцевих пробільних символів ^\s*|\s*$
Редагування часто використовуваних
Ось деякі заміни для спеціального китайського контенту (editplus)
^[0-9].*\n
^[^第].*\n
^[习题].*\n
^[\s\S ]*\n
^[0-9]*\.
^[\s\S ]*\n
<p[^<>*]>
href="javascript:if\(confirm\('(.*?)'\)\)window\.location='(.*?)'"
<span style=".[^"]*rgb\(255,255,255\)">.[^<>]*</span>
<DIV class=xs0>[\s\S]*?</DIV>

Швидкий посібник з синтаксису регулярних виразів - поширені методи і синтаксис

Регулярні вирази є потужним інструментом обробки тексту, ця сторінка надає вам швидкий посібник з синтаксису регулярних виразів, допомагаючи швидко зрозуміти основний синтаксис регулярних виразів, модифікатори, підвибори, жадібні та неагресивні моди та інше.

Основний синтаксис регулярних виразів

Регулярні вирази описують правила для шаблонів рядків, поширені основні синтаксиси включають:

Популярні модифікатори регулярних виразів

Модифікатори регулярних виразів змінюють правила співпадінь, поширені модифікатори включають:

Жадібний і неагресивний режим

У регулярних виразах кількість знаків за замовчуванням є жадібним, тобто буде намагатися відповідати більшій кількості символів. Неагресивний режим використовується шляхом додвання знака питань після кількості знаків, приклади:

Підумови та групування

У регулярних виразах підумови визначаються дужками ( ( ) ), ними зазвичай користуються для витягування частин матчів. Групи реалізуються за допомогою символу "|". Наприклад:

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

Ось швидкий пошук поширених регулярних виразів:

Функція Регулярний вираз
Збіг чисел \d
Збіг не-чисел \D
Збіг літер [a-zA-Z]
Збіг будь-якого символу .
Збіг пробільних символів \s

Сценарії використання регулярних виразів

Регулярні вирази широко використовуються у наступних сценаріях:

Поради для вивчення регулярних виразів

Використовуйте наш швидкий посібник з синтаксису регулярних виразів зараз, щоб підвищити ефективність при створенні регулярних виразів та покращити свою здатність обробляти текст!

Ваші сліди:
Оберіть мову