Вопрос о preg_replace в PHP
-
07-07-2019 - |
Вопрос
В PHP какая разница между использованием \ 1 или $ 1 в качестве замены $ в preg_replace ()? р>
Они оба работают и, кажется, делают одно и то же, но я думаю, что здесь что-то упущено.
Решение
Ты ничего не пропустил. Существует только одна ситуация, когда можно использовать только $ n:
При работе с шаблоном замены, в котором за обратной ссылкой сразу следует другой номер (т. е. размещается литеральный номер сразу после сопоставленного шаблона), вы не можете использовать знакомую запись \ 1 для своей обратной ссылки. Например, \ 11 может привести к путанице preg_replace (), так как он не знает, хотите ли вы, чтобы обратная ссылка \ 1 сопровождалась литералом 1, или обратная ссылка \ 11 не сопровождалась ничем. В этом случае решение состоит в использовании \ $ {1} 1. Это создает изолированную обратную ссылку $ 1, оставляя 1 как литерал. Р>
Кроме того, между ними нет абсолютно никакой разницы.