Підручник Regex - Як писати регулярні вирази?
Регулярний вираз (Regex) - це послідовність символів, які визначають схему пошуку. Ось як писати регулярні вирази:
- Почніть з розуміння спеціальних персонажів, що використовуються в регексі, таких як ". '*' '+' '?' і більше.
- Виберіть мову або інструмент програмування, який підтримує регекс, такий як Python Perl або Grep.
- Напишіть свій візерунок, використовуючи спеціальні символи та буквальні символи.
- Використовуйте відповідну функцію або метод для пошуку шаблону в рядку.
Приклади:
- Щоб відповідати послідовності буквальних символів, просто записуйте цих символів у візерунок.
- Щоб відповідати одному символу з набору можливостей, використовуйте квадратні дужки, наприклад [0123456789] відповідає будь -якій цифрі.
- Щоб відповідати нулю або більше випадків попереднього виразу, використовуйте символ зірки (*).
- Щоб відповідати одному або декількома випадками попереднього виразу, використовуйте символ плюс (+).
- Важливо зазначити, що Regex може бути складним і важко прочитати, тому рекомендується використовувати такі інструменти, як тестери Regex для налагодження та оптимізації ваших моделей.
Регулярний вираз (іноді його називають раціональним виразом) - це послідовність символів, які визначають шаблон пошуку, головним чином для використання у відповідності шаблону з рядками або відповідними рядками, тобто "знаходити та замінити" як операції. Регулярні вирази - це узагальнений спосіб відповідати шаблонам із послідовностями символів. Він використовується в кожній мові програмування, таких як C ++ Java та Python.
Що таке звичайний вираз і що робить його таким важливим?
Regex використовується в Google Analytics У відповідності URL -адрес у підтримці пошуку та заміни в найпопулярніших редакторах, таких як піднесені блокноти ++ дужки Google Docs та Microsoft Word.
Example : Regular expression for an email address :
^([a-zA-Z0-9_-.]+)@([a-zA-Z0-9_-.]+).([a-zA-Z]{25})$Наведений вище звичайний вираз може бути використаний для перевірки, чи заданий набір символів - це електронна адреса чи ні.
Як писати регулярні вирази?
Існують певні елементи, що використовуються для запису регулярних виразів, як зазначено нижче:
1. Repeaters (* + і {})
Ці символи виступають як ретранслятори і кажуть комп’ютеру, що попередній символ повинен використовуватися більше, ніж лише один раз.
2. Символ зірочки ( *)
Він каже, що комп'ютер відповідає попередньому символу (або набору символів) протягом 0 або більше разів (до нескінченного).
Example : The regular expression ab*c will give ac abc abbc abbbc….and so on3. Символ плюс ( +)
Він повідомляє комп'ютеру повторити попередній символ (або набір символів) в принаймні один або кілька разів (до нескінченного).
Example : The regular expression ab+c will give abc abbc
abbbc … and so on.4. Кучеряві брекети {…}
Він каже комп'ютеру повторити попередній символ (або набір символів) протягом стільки разів, як значення всередині цієї дужки.
Example : {2} means that the preceding character is to be repeated 2
times {min} means the preceding character is matches min or more
times. {minmax} means that the preceding character is repeated at
least min & at most max times.5. Мілка (.)
Символ крапки може зайняти місце будь -якого іншого символу, тому його називають персонажем підстановки.
Example :
The Regular expression .* will tell the computer that any character
can be used any number of times.6. Необов’язковий символ (?)
Цей символ повідомляє комп'ютеру, що попередній символ може бути або не бути присутнім у рядку, щоб відповідати.
Example :
We may write the format for document file as – docx?
The ‘?’ tells the computer that x may or may not be
present in the name of file format.7. Символ карети ( ^) ( Встановлення позиції для матчу)
Символ Caret повідомляє комп'ютеру, що матч повинен починатися на початку рядка або рядка.
Example : ^d{3} will match with patterns like '901' in '901-333-'.8. Символ долара ($)
Він повідомляє комп'ютеру, що матч повинен відбуватися в кінці рядка або перед n в кінці рядка або рядка.
Example : -d{3}$ will match with patterns like '-333' in '-901-333'.9. Класи персонажів
Клас персонажів відповідає будь -якому з набору символів. Він використовується для відповідності найосновнішому елементу мови, як буква в цифрі, простір символ тощо
s : відповідає будь -яким символам Whitpace, такими як простір та вкладка.
S : відповідає будь-якими символами, що не належать до розставки.
р. : відповідає будь -якому цифровому персонажу.
Д: відповідає будь-яким нецифітовим символам.
У : відповідає будь-якому символу слова (в основному альфа-нумеру)
У : відповідає будь-якому не слова символу.
б : відповідає будь-якій межі слова (це включатиме проміжні тире коми напівколонів тощо.
[set_of_characters]: Відповідає будь -якому одному символу в set_of_characters. За замовчуванням матч залежить від регістру.Example : [abc] will match characters ab and c in any string.10. [^set_of_characters] Заперечення:
Відповідає будь -якому одному символу, який не знаходиться в set_of_characters. За замовчуванням матч залежить від регістру.
Example : [^abc] will match any character except abc .11. [Перший проліт] Діапазон символів:
Відповідає будь -якому одному символу в діапазоні від першого до останнього.
Example : [a-zA-z] will match any character from a to z or A to Z.12. Символ втечі ()
Якщо ви хочете відповідати фактичному "+" ".". Це скаже комп’ютеру трактувати наступний символ як символ пошуку та розглянути його для відповідної схеми.
Example : d+[+-x*]d+ will match patterns like '2+2'
and '3*9' in '(2+2) * 3*9'.13. Групування символів ()
Набір різних символів регулярного виразу може бути згрупований, щоб діяти як єдина одиниця і поводитись як блок для цього, вам потрібно завершити регулярний вираз у дужках ().
Example : ([A-Z]w+) contains two different elements of the regular
expression combined together. This expression will match any pattern
containing uppercase letter followed by any character.14. Вертикальна смуга (|)
Відповідає будь -якому одному елементу, розділеному символом вертикальної смуги (|).
Example : th(e|is|at) will match words - the this and that.15. Число
Backreference: Дозволяє ідентифікувати попередньо відповідну субекспресію (вираз, захоплений або укладений в кругових дужках) згодом у тому ж регулярному виразі. N означає, що група, закрита в N-ту, кронштейн, буде повторена в поточному положенні.
Example : ([a-z])1 will match ee in Geek because the character
at second position is same as character at position 1 of the match.16. Як (?# Коментар)
Вбудований коментар: Коментар закінчується на першій закритої дужки.
Example : bA(?#This is an inline comment)w+b17. # [до кінця лінії]
Коментар X-Mode. Коментар починається з Unescaped # і продовжує кінець рядка.
Example : (?x)bAw+b#Matches words starting with A