← Все вопросы

Что такое регулярные выражения и как сделать простой пример?

Задан 19 месяцев назад1.3к просмотров3 ответа
16

Постоянно слышу про регулярки (regex), но не понимаю, зачем они и с чего начать. Можно совсем простой пример — например, вытащить все числа из текста?

3 ответа

28
✓ Принятый ответ — помог автору

Регулярное выражение — это шаблон для поиска текста по правилам, а не по точному совпадению. Удобно, когда надо найти «все числа», «все слова с большой буквы», «что-то похожее на дату» и т.п.

Модуль 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 — пробел, . — любой символ, * — ноль или больше.

Сэм Райдер наконец-то понятно объяснили, спасибо! · 19 месяцев назад
Диана Герасимова сайт regex101.com очень помогает тренироваться · 19 месяцев назад
9

Совет от души: если задачу можно решить обычными методами строк (in, split, startswith) — решай ими. Регулярки мощные, но в них легко закопаться и получить нечитаемого монстра.

7

Шаблоны для поиска в тексте. Старт — re.findall(r'\d+', s) чтобы вытащить числа.

Ваш ответ

Войдите, чтобы ответить на вопрос.
Поддержать проект