📝 Задания: закрепляем regex

⚡ Кратко

  1. Квиз по классам символов, квантификаторам и якорям.
  2. Практика: проверка пароля и извлечение IPv4-адресов.

Квиз 1. Сопоставьте шаблон с тем, что он найдёт

Сопоставьте каждый шаблон с описанием:

  1. \d+
  2. [a-zA-Z0-9]+
  3. \s+
  4. [^a-zA-Z0-9]+
  1. Несколько подряд идущих пробелов
  2. Последовательность букв и цифр
  3. Последовательность цифр
  4. Последовательность не букв и не цифр

Квиз 2. Найдите ошибку

import re
re.findall("\d+", "Value: 123")

Квиз 3. Ленивый квантификатор

В каком шаблоне используется ленивый квантификатор?

  1. <.+>
  2. <.*>
  3. <.*?>
  4. *[a-z]

Квиз 4. Сопоставьте якорь с назначением

  1. ^
  2. $
  3. \b
  4. \B
  1. Указывает на конец строки
  2. Указывает на начало строки
  3. Обозначает границу слова
  4. Указывает, что позиция не является границей слова

Квиз 5. re.match vs re.search

В чём отличие re.match() от re.search()?

  1. match() ищет по всей строке, search() — только в начале
  2. match() работает быстрее
  3. match() проверяет только начало, search() — в любой части строки

Практическая работа 1. Проверка пароля

Реализуйте программу, которая проверяет пароль по требованиям:

  • Минимум 8 символов.
  • Есть хотя бы одна заглавная буква.
  • Есть хотя бы одна строчная буква.
  • Есть хотя бы одна цифра.

Пример вывода

Введите пароль: Pass1234
Пароль надёжен.
---
Введите пароль: k2n6bd7
Пароль не соответствует требованиям.

Практическая работа 2. Извлечение IPv4-адресов

Программа должна найти все корректные IPv4-адреса в строке. IPv4 состоит из четырёх чисел от 0 до 255, разделённых точками.

Данные

text = "Server1: 192.168.1.1, Server2: 10.0.0.254, Invalid: 999.123.456.78"

Пример вывода

192.168.1.1
10.0.0.254

Проверка понимания

Выберите один вариант ответа. После клика правильный ответ подсветится зелёным.

Вопрос 1

Какой стиль имён переменных обычно рекомендует PEP 8?

Вопрос 2

Зачем использовать f-strings в современном Python?

Вопрос 3

Когда полезен ранний возврат из функции?

Вопрос 4

Что делает аннотация типа в Python?

Вопрос 5

Как лучше обрабатывать ожидаемую ошибку преобразования?

Вопрос 6

Чем отличается = от ==?

Вопрос 7

Что делает print()?