Лекція 4. Обробка строкових даних
2. Регулярні вирази
Регулярні вирази (Regular Expressions, RegEx) — це шаблони для пошуку і маніпуляції з текстом. Вони дозволяють описати закономірності в тексті за допомогою спеціального синтаксису.
У Python підтримка регулярних виразів надається стандартним модулем re
.
Основи синтаксису RegEx
Символ | Опис |
---|---|
. |
Будь-який символ, крім нового рядка |
^ |
Початок рядка |
$ |
Кінець рядка |
* |
0 або більше входжень |
+ |
1 або більше входжень |
? |
0 або 1 входження |
{n} |
Рівно n входжень |
{n,m} |
Від n до m входжень |
[] |
Будь-який символ із вказаного діапазону |
` | ` |
() |
Групування виразів |
\ |
Екранування спецсимволів |
Метасимволи і шаблони
Шаблон | Опис |
---|---|
\d |
Цифра (0–9) |
\D |
Не цифра |
\w |
Словесний символ (латиниця, цифра або _ ) |
\W |
Все, крім \w |
\s |
Пробіл |
\S |
Все, крім пробілу |
\b |
Границя слова |
\B |
Не границя слова |
Приклади регулярних виразів
- email
\b[\w.-]+@[\w.-]+\.\w{2,4}\b
- дати
\d{4}-\d{2}-\d{2}
- телефон
\+?\d{10,13}
Python: модуль re
Імпорт модуля
import re
Приклади:
re.search(r"\d+", "Номер 12345") # <re.Match object>
re.findall(r"\d+", "Ціни: 100, 200, 300") # ['100', '200', '300']
re.sub(r"\d+", "#", "Мій номер 12345") # 'Мій номер #'
re.split(r"\s+", "Python є крутий") # ['Python', 'є', 'крутий']
pattern = re.compile(r"\b\w{4}\b")
pattern.findall("Цей рядок має слова різної довжини") # ['Цей', 'ряд', 'має']
Можна групувати частини виразу в дужки ()
для подальшого використання.
text = "Дата: 2025-05-08"
match = re.search(r"(\d{4})-(\d{2})-(\d{2})", text)
if match:
print(match.group(0)) # Весь збіг
print(match.group(1)) # Рік
print(match.group(2)) # Місяць
print(match.group(3)) # День
Шрифти
Розмір шрифта
Колір тексту
Колір тла
Кернінг шрифтів
Видимість картинок
Інтервал між літерами
Висота рядка
Виділити посилання