Как использовать обратные ссылки на PCRE в PHP?

StackOverflow https://stackoverflow.com/questions/16759

  •  08-06-2019
  •  | 
  •  

Вопрос

Я прочитал это Страница PHP RegEx, но либо я что-то упускаю, что-то неправильно читаю, либо это работает не так, как говорят.Я предполагаю, что это один из первых двух.

$str = preg_replace("([|]\d*)", "\1;", $str);
Это было полезно?

Решение

Ваше регулярное выражение должно следовать синтаксису Perl, то есть оно должно начинаться и заканчиваться одним и тем же символом (за некоторыми исключениями).Кроме того, обратная ссылка должна начинаться с двойной косой черты, чтобы обойти двойное экранирование PHP.Это должно работать (с быстрым тестом):

$str = "asdfasdf |123123 asdf iakds |302 asdf |11";
$str = preg_replace("/([|]\d*)/", "\\1;", $str);
echo $str; // prints "asdfasdf |123123; asdf iakds |302; asdf |11;"
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top