Цитирование некоторых частей страницы руководства: preg_replace
:
replacement
может содержать ссылки вида \\n
или $n
, причем последняя форма является предпочтительной .
Вы, по-видимому, во втором случае: $n
А, позже:
При работе с шаблоном замены, когда за обратной ссылкой сразу следует другой номер (т. е. после размещения буквенного числа сразу после сопоставленного шаблона) , вы не можете использоватьзнакомая \\1
запись для вашей обратной ссылки.
\\11
, например, может запутать preg_replace()
, поскольку он не знает, хотите ли вы, чтобы обратная ссылка \\1
сопровождалась литералом 1
или обратной ссылкой \\11
, за которой ничего не было.
В этом случае решение заключается в использовании \${1}1
.Это создает изолированную $1
обратную ссылку, оставляя 1
в виде литерала.
Здесь у вас ничего нет после того, что будет $1
- но я полагаю, что это не повредитиспользовать нотацию \${1}
: я считаю, что код легче читать, имея такие {}
;и это гарантирует, что вы не забудете добавить их в тот день, когда они нужны.