python_math_stat/docs/python/regular.md

44 lines
2.3 KiB
Markdown
Raw Normal View History

2024-10-08 12:01:33 +03:00
# Регулярные выражения
Источники:
- [Хабр - Регулярные выражения в 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')]
2024-10-08 12:03:21 +03:00
```
![alt text](image.png)
![alt text](image-1.png)