Что такое регулярные выражения и как сделать простой пример?
Постоянно слышу про регулярки (regex), но не понимаю, зачем они и с чего начать. Можно совсем простой пример — например, вытащить все числа из текста?
3 ответа
Регулярное выражение — это шаблон для поиска текста по правилам, а не по точному совпадению. Удобно, когда надо найти «все числа», «все слова с большой буквы», «что-то похожее на дату» и т.п.
Модуль re. Самое простое — re.findall, он возвращает список всех совпадений:
import re
text = 'заказ 12 на сумму 350 руб, доставка 7'
nums = re.findall(r'\d+', text)
print(nums) # ['12', '350', '7']
Здесь \d — это «любая цифра», а + — «одна или больше подряд». Буква r перед строкой (raw-строка) нужна, чтобы \ не считался спецсимволом Python. Дальше по мелочи: \w — буква/цифра, \s — пробел, . — любой символ, * — ноль или больше.
Совет от души: если задачу можно решить обычными методами строк (in, split, startswith) — решай ими. Регулярки мощные, но в них легко закопаться и получить нечитаемого монстра.
Шаблоны для поиска в тексте. Старт — re.findall(r'\d+', s) чтобы вытащить числа.