python_math_stat/docs/python/regular.md
2024-10-08 12:01:33 +03:00

41 lines
2.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Регулярные выражения
Источники:
- [Хабр - Регулярные выражения в 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')]
```