Задать вопрос
@bitande
PHP

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

Подскажите как можно реализовать такое:

есть строка
< p > text < p >

мне нужно поочередно, используя регулярные выражения, заменить теги на уникальные строки.

например, функция получает: < p > text < /p >
функция возвращает: #p1 text #p2
  • Вопрос задан
  • 115 просмотров
Подписаться 1 Простой 1 комментарий
Помогут разобраться в теме Все курсы
  • Skillfactory
    Профессия Fullstack веб-разработчик на JavaScript и PHP
    20 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Решения вопроса 1
0xD34F
@0xD34F Куратор тега Регулярные выражения
$str = '< p > text </p>';

$count = 0;
$str = preg_replace_callback('/< ?\/?\w+ ?\>/', function() use(&$count) {
  $count++;
  return "#p$count";
}, $str);

или, если разные тэги надо заменять независимо
$str = '< p > text </p> <b> fdsgdfsg</b> <p>???</p> <div>hello, world!!< /div>';

$count = [];
$str = preg_replace_callback('/< ?\/?(\w+) ?\>/', function($matches) use(&$count) {
  $key = $matches[1];
  $count[$key] = isset($count[$key]) ? $count[$key] + 1 : 1;
  return "#$key$count[$key]";
}, $str);
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
lidacriss
@lidacriss
wtf
Комментировать
Ваш ответ на вопрос

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

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