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

У меня есть существующий код в методе PCRE, и я хотел бы иметь ту же функцию в POSIX.
Ниже приведен пример кода в PCRE.

<?php

$regex = "/(\d)/";
$content = "In the garden have dog,cat,23242,rabbit.";

echo preg_replace($regex,"<span style='color:green'>$1</span>",$content);
//Result:
//In the garden have dog,cat,<span style='color:green'>2</span><span style='color:green'>3</span><span style='color:green'>2</span><span style='color:green'>4</span><span style='color:green'>2</span>,rabbit.

Я пытаюсь сделать то же самое в POXIS, но не могу получить тот же вывод.
Ниже приведен мой пример кода в POSIX .;

<?php

$regex = "([[:digit:]])";
$content = "In the garden have dog,cat,23242,rabbit."
echo ereg_replace($regex,"<span style='color:green'>$1</span>",$content);
//Result:
//In the garden have dog,cat,<span style='color:green'>$1</span><span style='color:green'>$1</span><span style='color:green'>$1</span><span style='color:green'>$1</span><span style='color:green'>$1</span>,rabbit.

1

Решение

Обратите внимание, что ereg_replace,

Эта функция УСТАРЕЛА в PHP 5.3.0 и УДАЛЕНА в PHP 7.0.0.

Если ваш PHP environemnt не поддерживает preg_replace, используйте текущий код с \\1 вместо $1 в шаблоне замены.

$regex = "([[:digit:]]+)";
$content = "In the garden have dog,cat,23242,rabbit.";
echo ereg_replace($regex,"<span style='color:green'>\\1</span>",$content);
// => In the garden have dog,cat,<span style='color:green'>23242</span>,rabbit.
1

Другие решения

Других решений пока нет …