@Nohaga

Как составить регулярное выражение?

Составил в генераторе регулярных выражений, не понимаю ошибку. delimiter ограничитель, ограничитель же ' такой знак, кавычки часть искомой строки, если её экранировать то другая ошибка.
preg_replace ('"http(.*)\/uploads\/(.*).jpg', '"http(.*)\/uploads\/(.*).webp', $content);

ошибка preg_replace(): No ending delimiter '"' found in
  • Вопрос задан
  • 76 просмотров
Решения вопроса 1
megakor
@megakor
Go/PHP developer | ВКонтакте
Слева и справа строки с паттерном нужно добавить разделитель, например слэш /

preg_replace ('/"http(.*)\/uploads\/(.*).jpg/', '"http(.*)\/uploads\/(.*).webp', $content);
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Регулярное выражение - это не просто строка.

Формат (шаблон) у регулярок следующий:
{delimiter}{regexp}{delimiter}{modifiers}

В качестве {delimiter} может быть практически любой символ, например / или # или @ и т.п. Обычно выбирается то, что не встретится в самом regexp.
Про модификаторы тоже почитайте, хоть здесь их нет.

PHP парсит эту строку, глядя на разделители. Поэтому регулярка должна содержать одинаковые символы разделителя в начале и конце строки (перед модификатором).

В вашем случае интерпретатор считает, что " - это разделитель, но в конце его не находит. Поэтому и получаете такую ошибку.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы