Задать вопрос
@nn808
People

Как заменить выражение в строке с помощью регулярного выражения?

Вопрос простой, я его уже решил, одна проблема.
По порядку.

У меня есть pattern - /=icon:((#|\.\w+)|):((\w+)\.(\w+))/

И есть условный текст:
<div id="logotype">
    =icon:#logotype_mini:logotype_mini.svg
...


Задача состоит в замене выражения на основе полученных параметров.
Нашёл функцию preg_replace_callback, но вот не особо понимаю как мне заставить её заменять на основе полученных значений.
  • Вопрос задан
  • 60 просмотров
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Skillbox
    Веб-разработчик на PHP
    9 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 2
Exomode
@Exomode
Архитектор ПО
$pattern = "/=icon:((#|\.\w+)|):((\w+)\.(\w+))/";

    $callback = function ($m) {
        return trim($m);
    };
    
    echo preg_replace_callback($pattern, $callback, '=icon:#logotype_mini:logotype_mini.svg');

В первом аргументе ваш паттерн, во втором обработчик каждого найденного вхождения, в третьем ваш исходный string.
Ответ написан
Комментировать
@nn808 Автор вопроса
People
preg_replace_callback($pattern, function($matches){
//производим операции с $matches
return $result;
}, $string);


Вот и всё.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
от 200 000 до 290 000 ₽