Регулярные выражения (regex) – это мощный инструмент для работы с текстом в Python. Они позволяют выполнять поиск, замену и валидацию строк на основе заданных шаблонов. В Python для работы с регулярными выражениями используется модуль re
.
Основные функции модуля re
:
re.match()
– проверяет, начинается ли строка с заданного шаблона.re.search()
– ищет заданный шаблон в строке и возвращает первое совпадение.re.findall()
– возвращает все неперекрывающиеся совпадения шаблона в строке в виде списка.re.finditer()
– возвращает итератор сопоставлений шаблона в строке.re.sub()
– заменяет совпадения шаблона на заданную строку.re.split()
– разбивает строку по заданному шаблону.
Пример использования регулярных выражений:
import re
# Пример строки
text = 'У меня есть 2 яблока и 3 апельсина.'
# Поиск всех чисел
numbers = re.findall(r'd+', text)
print(numbers) # Вывод: ['2', '3']
# Замена чисел на слово 'число'
new_text = re.sub(r'd+', 'число', text)
print(new_text) # Вывод: 'У меня есть число яблока и число апельсина.'
Объяснение примера:
- Мы импортировали модуль
re
. - Создали строку
text
, в которой есть числа. - С помощью
re.findall()
мы ищем все числа в строке. Используем шаблонr'd+'
, гдеd
обозначает цифру, а+
– один или более раз. - С помощью
re.sub()
заменяем все числа на слово ‘число’.
Шаблоны регулярных выражений:
d
– соответствует любой цифре.D
– соответствует любому символу, который не является цифрой.w
– соответствует любому алфавитно-цифровому символу (буквы и цифры).W
– соответствует любому символу, который не является алфавитно-цифровым.s
– соответствует любому пробельному символу (пробел, табуляция, новая строка).S
– соответствует любому символу, который не является пробелом.^
– соответствует началу строки.$
– соответствует концу строки..
– соответствует любому символу, кроме новой строки.
Флаги регулярных выражений:
re.IGNORECASE
– игнорирует регистр при поиске.re.MULTILINE
– позволяет использовать^
и$
для каждой строки в многострочном тексте.re.DOTALL
– позволяет.
соответствовать любому символу, включая новую строку.
Пример с флагами:
text = 'Привет
Как дела?'
# Ищем 'привет' без учета регистра
match = re.search(r'привет', text, re.IGNORECASE)
if match:
print('Найдено:', match.group())
Заключение: Регулярные выражения – это очень мощный инструмент для работы с текстом в Python. Они позволяют быстро и эффективно выполнять поиск и замену строк, а также валидацию данных. Изучив основные функции и шаблоны, вы сможете решать множество задач, связанных с обработкой текста.