Регулярные выражения Python – это шаблоны для поиска, описываемые с помощью специального синтаксиса.
import re
Для экранирования служебных символов в шаблонах поиска и замены используют два способа:
- обратный слэш
\ - «сырые» строки
r''
re.match(r'шаблон', строка)- находит вхождение фрагмента в начале строкиre.search()- находит первое вхождение фрагмента в любом месте и возвращает объект matchre.span()- возвращает кортеж, содержащий начальную и конечную позиции искомого фрагментаre.string()- вернет строку, переданную в функцию re.searchre.group()- возвращает фрагмент строки, в котором было обнаружено совпадениеre.findall()- находит все вхождения фрагментаre.split()- расщепляет строку по заданному шаблонуre.sub()- заменяет фрагмент в соответствии с шаблономre.compile()- создает объект из регулярного выражения
.- используется для поиска соответствия любому единичному символу, кроме символа новой строки^- выделяет начало строки$- выделяет конец строки*- используется для 0 или более значений крайнего левого символа / «жадные» операторы+- используется для 1 или более значений крайнего левого символа / «жадные» операторы?- от нуля до одного вхождения, то же самое, что {0,1} / «ленивые» операторы{}- указывает количество вхождений, можно задавать единичным числом или диапазоном / «жадные» операторы[]- ищем любой символ в квадратных скобках\- экранирование|- логическое ИЛИ()- группировка[^…]- любой символ, кроме указанных в скобках
\w- соответствие любой букве, цифре или подчеркиванию, эквивалентен [a-zA-Z0–9_]\W- соответствие любому символу, кроме буквенного и цифрового символа и знака подчёркивания\d- соответствие любому цифровому символу, эквивалентен [0–9]\D- соответствие любому нецифровому символу\s- любой пробельный символ (пробел, новая строка, табуляция, возврат каретки и тому подобное)\S- любой символ, кроме пробельного\A- начало строки, то же самое, что ^\Z- конец строки, то же самое, что $\b- начало или конец слова\B- cередина слова\n, \t\, \r- новая строка, табуляция, возврат каретки
g(global) - не возвращает результат после первого совпадения, а продолжает поиск с конца предыдущего совпаденияm(multi line) - с таким флагом, операторы ^ и $ вызовут совпадение в начале и конце строки ввода (line), вместо строки целиком (string)i(insensitive) - делает выражение регистронезависимым (например, /aBc/i соответствует AbC)
https://docs.python.org/3/library/re.html - документация
https://regexlearn.com - изучите Regex шаг за шагом (можно включить русский язык)
https://regex101.com - сайт, позволяющий тестировать регулярные выражения