Код Middle Стандартная библиотека спрашивают часто обновлено

Разбор строк лога регулярным выражением

Условие

Строки лога имеют вид 2026-10-15 12:00:01 [ERROR] payment: card declined. Напишите parse(lines): верните словарь «уровень -> количество» и список модулей с ошибками уровня ERROR без повторов в порядке первого появления, в виде [levels, modules]. Строки другого формата пропускайте.

Примеры

parse(["2026-10-15 12:00:01 [ERROR] payment: card declined", "2026-10-15 12:00:02 [INFO] api: ok"]) // [{"ERROR":1,"INFO":1}, ["payment"]]
parse([]) // [{}, []]
parse(["garbage", "2026-10-15 12:00 [ERROR] x: y"]) // [{}, []]

Как подойти

Подсказки: 2
  1. Именованные группы (?P<name>...).
  2. Не забудьте якорь начала строки.

Решите в тренажёре

Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.