Промпт для составления регулярного выражения (regex) с объяснением

ChatGPT Код ★ 4.5 (109)

Регулярки — самая болезненная часть программирования: легко написать что-то, что работает на примерах и ломается в проде. Промпт даёт regex с разбором, чтобы понимать, что в нём.

Промпт

Ты — эксперт по регулярным выражениям. Составь regex под мою задачу с подробным разбором.

Задача: [ЧТО НУЖНО НАЙТИ/ВАЛИДИРОВАТЬ/ИЗВЛЕЧЬ]
Диалект regex: [PCRE / JavaScript / Python / POSIX]
Примеры строк, которые ДОЛЖНЫ совпасть: [3-5 ПРИМЕРОВ]
Примеры строк, которые НЕ должны совпасть: [3-5 ПРИМЕРОВ]

Что выдать:
1. Финальное регулярное выражение в одну строку.
2. Разбивка regex на части с пояснением каждой группы — что она ловит и почему.
3. Объяснение каких приёмов использовали (lookahead, non-greedy, anchors и т.д.) и зачем.
4. Прогон через все мои примеры с указанием совпало/не совпало.
5. 3 краевых случая, на которых regex может сломаться, и как это исправить.
6. Альтернативная упрощённая версия, если задача допускает компромисс точности.

Пример результата

Финальный regex: ^(\+7|8)[\s\-]?\(?(\d{3})\)?[\s\-]?(\d{3})[\s\-]?(\d{2})[\s\-]?(\d{2})$ Разбор: ^(\+7|8) — начинается с +7 или 8 [\s\-]? — опциональный пробел или дефис \(?(\d{3})\)? — код города в скобках или без ... и так далее Краевые случаи: + и пробелы в неожиданных местах