Регулярные выражения — формальный язык поиска и осуществления манипуляций с подстроками в тексте, основанный на использовании метасимволов. Это шаблон, состоящий из символов и метасимволов и задающий правило поиска. Язык регулярных выражений имеет специальный синтаксис и команды.
Метасимволы - специальные символы, которые не соотвествуют себе, а влияют на суть шаблона исходя из своего специального значения. Всего метасимволов 12.
- $ - Соотвествует позиции конца строки
- (
- )
- * - Ноль или более повторение предшествующего выражения
- + - Одно или более повторение предшествующего выражения
- . - Любой символ, кроме переноса строки
- ? - Ноль или одно повторение предшествующего выражения
- [ - Начало символьного класса
- \ - Символ экранирования или начала предопределенных последовательностей
- ^ - Соотвествует позиции начала строки
- {
- |
Символ ] становится метасимволом, если идет после соотвествующей открывающей скобки. Тоже справедливо и для }. Дефис -, является метасимволом только внутри скобок []. Если мы хотим, чтобы указанные матасимволы соотвествовали своему буквальному смыслу их нужно экранировать, т.е. помещать перед ними символ обратного слэша \.
Символьный класс - последовательность символов заключенная в скобки []. Внутри данного класса четыре символа имеют специальное значение.
- - - если он находится между двумя символами, тогда обозначает диапазон, т.е. [a-d] это тоже, что и [abcd]. В другом случае, обозначает символ дефиса, наприм при [abcd-]
- ^ - символ отрицания, используется для указания класса "все кроме"
- \ - символ экранирования
- ] - становится метасимволом и обозначает конец символьного класса
Все другие метасимволы имеют свое обычное символьное значение.
Ссылки по данной теме:
- - Оригинальная документация по модулю.
- на сайте Google - Регулярные выражения в Питоне.
- habrahabr.ru - Регулярные выражения, пособие для новичков. Часть 1
- habrahabr.ru - Регулярные выражения, пособие для новичков. Часть 2
- - Редактор регулярных выражений онлайн.
- Regex Crossword - Обучение. Игра. Головоломки на тему регулярных выражений.
Видео уроки
- rutracker - [pluralsight] Regular Expressions Fundamentals.
- pluralsight - Regular Expressions Fundamentals 2016.
- rutracker - [teamtreehouse.com] Regular Expressions in Python 2016.
- rutracker - [tutsplus]Regular Expressions: Up and Running.
- tutsplus.com - Regular Expressions: Up and Running 2011.
- rutracker - [Lynda.com]Using Regular Expressions with Kevin Skoglund 2011.
Литература:
- rutracker - Regular Expression Puzzles and AI Coding Assistants. 24 puzzles solved by the author, with and without assistance. 2023.
- rutracker - Бен Форта. Изучаем регулярные выражения. 2019.
- rutracker - Джеффри Фридл. Регулярные выражения, 3-е издание. 2018.
- rutracker - Майкл Фицджеральд. Регулярные выражения. Основы. 2015.
- стр. 354-362. Бизли Д. Python. Подробный справочник, 4-е издание. Перевод с английского. Спб.: Символ-Плюс, 2010. [RUS]
- rutracker - Гойвертс Я., Левитан С. Регулярные выражения. Сборник рецептов. (второе издание) 2015.
- rutracker - Гойвертс Я., Левитан С. Регулярные выражения. Сборник рецептов. (второе издание) 2012.
- rutracker - Бен Форта. Регулярные выражения. 2005.