Регулярные выражения: поиск шаблонов в тексте
Регулярное выражение описывает шаблон текста. Оно помогает искать номера, коды, даты, слова определенного вида и повторяющиеся фрагменты. Для школьника это полезный инструмент, но его нужно использовать аккуратно.
В Python регулярные выражения находятся в модуле re.
import re
text = 'Коды: A12, B7, C105'
matches = re.findall(r'[A-Z]\d+', text)
print(matches)Шаблон [A-Z]\d+ означает: одна заглавная латинская буква, затем одна или несколько цифр.
Когда регулярное выражение уместно
Регулярные выражения полезны, если нужно найти текст по форме:
- код товара;
- номер кабинета;
- дату;
- адрес электронной почты в учебном примере;
- последовательность цифр;
- слово с определенной приставкой.
Пример проверки
Пусть школьный код должен состоять из двух букв и трех цифр.
import re
code = input()
if re.fullmatch(r'[A-Z]{2}\d{3}', code):
print('код корректен')
else:
print('ошибка')fullmatch требует, чтобы вся строка соответствовала шаблону, а не только ее часть.
Ограничения
Не стоит заменять регулярными выражениями обычные условия там, где проще использовать split, isdigit или перебор символов. Сложный шаблон трудно читать и отлаживать.
Для подготовки к информатике достаточно понимать идею: регулярное выражение — это компактное описание текстового шаблона. Начинайте с простых шаблонов и обязательно проверяйте их на нескольких примерах.
Источники
- Босова Л.Л. Информатика. Базовый курс: учебник для 7-9 классов. - М.: БИНОМ. Лаборатория знаний.
- Поляков К.Ю., Еремин Е.А. Информатика. 10-11 классы. Углубленный уровень.
- Python Documentation: The Python Tutorial.