Перейти к основному содержимому

29. Регулярные выражения (Regexp)

Что такое Regex?​

Junior

Ответ: Regex (Регулярное выражение) — это мощный инструмент для сопоставления текста, поиска и манипуляций. В PHP он реализован через библиотеку PCRE. Подробное руководство по Regex


Почему Regex — это хорошо?​

Junior

Ответ: Это краткий, мощный и чрезвычайно эффективный инструмент при правильном написании. Он позволяет описывать сложные текстовые шаблоны одной строкой. Подробное руководство по Regex


Как использовать Regex в PHP?​

Junior

Ответ: PHP использует функции preg_*, такие как preg_match(), preg_match_all() и preg_replace(). Шаблоны должны быть заключены в разделители (например, /шаблон/). Подробное руководство по Regex


В чем разница между preg_match и preg_match_all?​

Junior

Ответ: preg_match останавливается после первого совпадения, в то время как preg_match_all находит все вхождения в строке. Подробное руководство по Regex


Как создать сложный Regex пошагово?​

Middle

Ответ: 1. Определите, что игнорировать (кавычки, теги). 2. Определите целевой шаблон. 3. Объедините с помощью «Лучшего трюка» (Игнор|Цель|(Захват)). 4. Оптимизируйте по AGRA (Якорь, Жадность, Повтор, Атомарность). Подробное руководство по Regex


Что такое «Лучший трюк Regex в истории»?​

Middle

Ответ: Это техника сопоставления паттернов с исключением конкретных контекстов (например, кавычек или комментариев) с помощью простого шаблона Игнор|Цель|(Захват). Подробное руководство по Regex


Что такое preg_filter?​

Middle

Ответ: Это аналог preg_replace, но он возвращает только те элементы, которые действительно соответствуют шаблону, фактически фильтруя входной массив. Подробное руководство по Regex


Что такое атомарные группы и зачем они нужны?​

Senior

Ответ: Группы (?>...) предотвращают возврат (backtracking). Они «фиксируют» совпадение, не позволяя движку пробовать альтернативные пути, что предотвращает «катастрофический возврат» и повышает производительность. Подробное руководство по Regex


Хорош ли ChatGPT в регулярных выражениях?​

Senior

Ответ: Хотя ChatGPT полезен для черновиков, ему часто не хватает глубоких знаний. Он может создавать неэффективные шаблоны («dot-star soup») или допускать синтаксические ошибки. Всегда требуется проверка экспертом. Подробное руководство по Regex