<MyRusakov.ru />

Создание нейросетей на Python

Создание нейросетей на Python

Этот курс научит Вас созданию нейросетей на Python. Курс рассчитан на начинающих. Вся информация идёт от простого к сложному очень маленькими шажками. При этом глубокое знание математики не требуется. Поскольку в курсе Вы будете получать эти знания по мере необходимости.

Из курса Вы узнаете всю необходимую теорию и терминологию. Научитесь создавать нейросети самых разных архитектур и обучать их. Также Вы создадите собственный фреймворк. Что очень важно проделать для грамотного использования того же PyTorch. Затем Вы изучите и сам PyTorch.

Помимо уроков к курсу идут упражнения для закрепления материала.

Ещё Вы получите Бонусы, дополняющие основной курс: "Распознавание изображений", "Анализ настроения по тексту отзыва", "Программирование на Python с Нуля до Гуру".

Подробнее
Подписка

Подпишитесь на мой канал на YouTube, где я регулярно публикую новые видео.

YouTube Подписаться

Подписавшись по E-mail, Вы будете получать уведомления о новых статьях.

Подписка Подписаться

Добавляйтесь ко мне в друзья ВКонтакте! Отзывы о сайте и обо мне оставляйте в моей группе.

Мой аккаунт Мой аккаунт Моя группа
Опрос

Какая тема Вас интересует больше?

Регулярные выражения в Python: модуль re простыми словами с примерами

Регулярные выражения в Python: модуль re простыми словами с примерами

Если вы искали понятное руководство по запросу «регулярные выражения в Python re примеры» — вы по адресу. Ниже собраны базовые концепции, практические шаблоны и советы, которые помогут уверенно пользоваться модулем re уже сегодня.

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

Регулярные выражения — это язык шаблонов для поиска и преобразования текста. Они незаменимы, когда нужно:

  • находить и извлекать части строк (номера, даты, email-адреса);
  • заменять фрагменты по сложным правилам;
  • проверять формат ввода (валидация).

Важно: для парсинга сложных форматов (например, HTML) лучше использовать специализированные парсеры. Регулярки — для гибких текстовых шаблонов.

Быстрый старт с модулем re

Подключение и базовые функции:

import re

text = "Python 3.12 выпущен!"

# search: найти первое совпадение где угодно в строке
m = re.search(r"Python (\d+\.\d+)", text)
if m:
    print(m.group(1))  # 3.12

# match: начать поиск строго с начала строки
print(re.match(r"Python", text) is not None)  # True

# findall: вернуть все совпадения списком строк/кортежей
print(re.findall(r"\d+", text))  # ['3', '12']

# sub: замена по шаблону
print(re.sub(r"\d+", "X", text))  # Python X.X выпущен!

# split: разбиение по регулярному выражению
print(re.split(r"\s+", text))  # ['Python', '3.12', 'выпущен!']

В шаблонах используйте «сырые» строки r"...", чтобы не экранировать обратные слеши Python-строкой.

Основные элементы шаблонов re

  • Символьные классы: \d (цифра), \w (буква/цифра/"_"), \s (пробел), их отрицания: \D, \W, \S.
  • Якоря: ^ — начало строки, $ — конец строки, \b — граница слова.
  • Квантификаторы: * (0+), + (1+), ? (0 или 1), {m,n} — диапазон повторений.
  • Группы: ( ... ) — группировка и захват; (?: ... ) — без захвата; (?P<name> ... ) — именованные группы.
  • Альтернация: A|B — «или».
  • Жадность и ленивость: по умолчанию квантификаторы жадные; добавьте ? для ленивых версий: *?, +?, {m,n}?
import re

s = "Email: test.user@mail.com и test2@mail.ru"

# Группы и именованные группы
pat = r"(?P<name>[\w.]+)@(?P<domain>[\w.]+)"
for m in re.finditer(pat, s):
    print(m.group("name"), m.group("domain"))
    # test.user mail.com
    # test2 mail.ru

# Жадность vs ленивость
html = "<div>one</div><div>two</div>"
print(re.findall(r"<div>.*</div>", html))    # жадно: один большой матч
print(re.findall(r"<div>.*?</div>", html)) # лениво: два отдельных

Полезные рецепты (copy-paste)

1) Извлечь все числа (целые и десятичные, с минусом)

import re
s = "Температуры: -3, 0, 12.5 и -7.25 градуса"
nums = re.findall(r"-?\d+(?:\.\d+)?", s)
print(nums)  # ['-3', '0', '12.5', '-7.25']

2) Простая валидация email

Подойдёт для базовой проверки, не для RFC-полной валидации.

import re
emails = ["test@mail.com", "bad@@mail", "x@y.z"]
pat = re.compile(r"^[\w.+-]+@[\w-]+\.[A-Za-z]{2,}$")
for e in emails:
    print(e, bool(pat.match(e)))
# test@mail.com True, bad@@mail False, x@y.z False

3) Разбить по нескольким разделителям (запятая, точка с запятой, пробелы)

import re
s = "one, two;three   four"
parts = [p for p in re.split(r"[;,\s]+", s) if p]
print(parts)  # ['one', 'two', 'three', 'four']

4) Сжать подряд идущие пробелы до одного

import re
s = "  Hello    world   !  "
print(re.sub(r"\s+", " ", s).strip())  # Hello world !

5) Парсинг лога с именованными группами

import re
line = '127.0.0.1 - - [10/Feb/2026:10:24:42 +0000] "GET /index.html HTTP/1.1" 200 512'
pat = re.compile(
    r"^(?P<ip>\S+)\s+\S+\s+\S+\s+\[(?P<ts>[^\]]+)\]\s+\"(?P<method>\S+)\s+(?P<path>\S+)\s+HTTP/(?P<httpver>\d+\.\d+)\"\s+(?P<code>\d+)\s+(?P<size>\d+)"
)
m = pat.search(line)
print(m.groupdict())
# {'ip': '127.0.0.1', 'ts': '10/Feb/2026:10:24:42 +0000', 'method': 'GET', 'path': '/index.html', 'httpver': '1.1', 'code': '200', 'size': '512'}

6) Все слова, начинающиеся на «py», без учёта регистра

import re
text = "Python и pytest полезны, а pYramid — веб-фреймворк"
print(re.findall(r"\bpy\w*", text, flags=re.IGNORECASE))
# ['Python', 'pytest', 'pYramid']

Флаги re, которые стоит знать

  • re.IGNORECASE (re.I): игнорировать регистр букв.
  • re.MULTILINE (re.M): якоря ^ и $ работают для каждой строки отдельно.
  • re.DOTALL (re.S): точка "." матчится и с переводом строки.
  • re.VERBOSE (re.X): писать шаблоны с пробелами и комментариями для читаемости.
import re
text = "Foo\nbar\nBaz"
print(re.findall(r"^b\w+", text, flags=re.I | re.M))  # ['bar', 'Baz']

pat = re.compile(r"""
    ^                 # начало строки
    (\+7|8)\s?       # код страны
    \(?\d{3}\)?\s?  # код города
    \d{3}-?\d{2}-?\d{2}$  # номер
""", flags=re.X)
print(bool(pat.match("+7 (495) 123-45-67")))  # True

Компиляция шаблонов: когда это нужно

Если одно и то же выражение используется много раз, выгодно скомпилировать его один раз.

import re
pat = re.compile(r"\b\w{3,}\b")
texts = ["short", "some long text", "another line"]
for t in texts:
    print(pat.findall(t))

Советы и лучшие практики

  • Используйте r"..." для паттернов, чтобы не запутаться с экранированием.
  • Старайтесь якорить шаблоны ^...$, когда валидируете полную строку.
  • Для читаемости длинных паттернов применяйте re.VERBOSE и комментарии.
  • Проверяйте шаблоны на тестовых строках. Онлайн-песочницы (например, regex101) помогают быстрее отладить идею; учитывайте режим «Python».
  • Не злоупотребляйте «жадными» квантификаторами. Если нужно минимальное покрытие — используйте ленивые версии *?, +?, {m,n}?.

Хотите системно прокачать Python и закрепить практикой десятки подобных приёмов? Загляните в Пошаговый курс «Python с Нуля до Гуру» — там по полочкам разложены основы, задания и реальные мини‑проекты.

Короткая шпаргалка по re

# Функции
re.search(p, s)   # первое совпадение
re.match(p, s)    # с начала строки
re.findall(p, s)  # список совпадений
re.finditer(p, s) # итератор совпадений
re.sub(p, rep, s) # замена
re.split(p, s)    # разбиение
re.compile(p, flags=0) # компиляция

# Частые классы/якоря/квантификаторы
\d \w \s  ^  $  \b  *  +  ?  {m,n}  |  ( )  (?: )  (?P<name> )

Итог

Регулярные выражения в Python — это компактный и очень мощный инструмент для повседневной работы с текстом. Освойте базовые классы символов, группы, квантификаторы и флаги — и вы сможете быстро решать задачи извлечения данных, валидации и замены в пару строк кода.

Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (https://myrusakov.ru)!

Добавляйтесь ко мне в друзья ВКонтакте: https://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: https://vk.com/rusakovmy.

Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления

Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.

Порекомендуйте эту статью друзьям:

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

  1. Кнопка:

    Она выглядит вот так: Как создать свой сайт

  2. Текстовая ссылка:

    Она выглядит вот так: Как создать свой сайт

  3. BB-код ссылки для форумов (например, можете поставить её в подписи):

Комментарии (0):

Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.