Регулярные выражения (или регулярки) в Python — это мощный инструмент для работы с текстом. Они позволяют находить, заменять и анализировать строки на основе заданных шаблонов. Регулярные выражения представляют собой последовательности символов, которые формируют шаблон для поиска. В Python библиотека для работы с регулярными выражениями называется re.
Основные функции библиотеки re:
- re.match() — проверяет, начинается ли строка с заданного шаблона.
- re.search() — ищет шаблон в строке и возвращает первое совпадение.
- re.findall() — возвращает все непересекающиеся совпадения шаблона в строке в виде списка.
- re.sub() — заменяет совпадения шаблона в строке на другую строку.
- re.split() — разбивает строку по шаблону.
Для начала работы с регулярными выражениями, необходимо импортировать библиотеку re:
import re
Вот несколько примеров использования регулярных выражений в Python:
Пример 1: Проверка, начинается ли строка с определенного слова.
import re
pattern = r'^Привет'
string = 'Привет, как дела?'
if re.match(pattern, string):
print('Строка начинается с "Привет"')
else:
print('Строка не начинается с "Привет"')
Пример 2: Поиск всех чисел в строке.
import re
string = 'У меня 2 яблока и 3 груши'
pattern = r'd+'
numbers = re.findall(pattern, string)
print(numbers) # Вывод: ['2', '3']
Пример 3: Замена всех пробелов на подчеркивания.
import re
string = 'Это пример строки'
pattern = r's+'
new_string = re.sub(pattern, '_', string)
print(new_string) # Вывод: 'Это_пример_строки'
Специальные символы в регулярных выражениях:
- `.` — любой символ, кроме символа новой строки.
- ^ — начало строки.
- $ — конец строки.
- * — 0 или более повторений предыдущего символа.
- + — 1 или более повторений предыдущего символа.
- ? — 0 или 1 повторение предыдущего символа.
- d — любая цифра (0-9).
- D — любой нецифровой символ.
- s — любой пробельный символ.
- S — любой непробельный символ.
- w — любой буквенно-цифровой символ (буквы, цифры и символы подчеркивания).
- W — любой не буквенно-цифровой символ.
Группировка и замена: можно использовать круглые скобки для группировки частей шаблона. Это позволяет выделять определенные части совпадения, а также использовать их в замене.
import re
string = 'Я люблю Python и Java'
pattern = r'(Python|Java)'
new_string = re.sub(pattern, 'язык программирования', string)
print(new_string) # Вывод: 'Я люблю язык программирования и язык программирования'
Регулярные выражения могут быть довольно сложными, но их сила и гибкость делают их незаменимыми в задачах обработки текста. Важно помнить, что они требуют внимательности при составлении шаблонов, так как небольшая ошибка может привести к неправильным результатам.
Для более глубокого изучения регулярных выражений в Python, рекомендуется ознакомиться с официальной документацией, где подробно описаны все функции и примеры их использования.