# Регулярные выражения Источники: - [Хабр - Регулярные выражения в Python от простого к сложному. Подробности, примеры, картинки, упражнения](https://habr.com/ru/articles/349860/) - Очень подробный и обстоятельный материал: https://www.regular-expressions.info/; - Разные сложные трюки и тонкости с примерами: http://www.rexegg.com/; - Онлайн визуализация регулярок https://www.debuggex.com/ (выбрать Python); --- Примеры регулярных выражений |Регулярка|Её смысл| |----------|----------| | simple text| Cell 2 | | \d\d/\d\d/\d{4}| Даты в формате ДД/ММ/ГГГГ(и прочие куски, на них похожие, например, 98/76/5432) | \b\w{3}\b | Слова в точности из трёх букв \b означает границу слова (с одной стороны буква, а с другой — нет) \w — любая буква, {3} — ровно три раза | |[-+]?\d+| Целое число, например, 7, +17, -42, 0013 (возможны ведущие нули) [-+]? — либо -, либо +, либо пусто \d+ — последовательность из 1 или более цифр| |[-+]?(?:\d+(?:\.\d*)?\.\d+)(?:[eE][-+]?\d+)? | Действительное число, возможно в экспоненциальной записи Например, 0.2, +5.45, -.4, 6e23, -3.17E-14.| ---- import re ```python txt = "sampleapp-ABCD-1234-us-eg-123456789" x = re.findall("([ABCD]+[-][0-9]+)", txt) print(x) ``` ```python text = 'ул. Карпинского, дом № 20, корпус 3, квартира 98' # нет групп захвата match = re.findall(r'\d+', text) print(match) # ['20', '3', '98'] ``` ```python # одна группа захвата match = re.findall(r'(?i)([а-я]+)', text) print(match) # ['ул', 'Карпинского', 'дом', 'корпус', 'квартира'] ``` ```python # несколько групп захвата print(re.findall(r'(\w+)=(\d+)', 'set width=20 and height=10')) # [('width', '20'), ('height', '10')] ``` ![alt text](image.png) ![alt text](image-1.png)