preg_replace: вопрос про слеши в replacement

  • Автор темы Автор темы SMiX
  • Дата начала Дата начала

SMiX

Новичок
preg_replace: вопрос про слеши в replacement

Нужно экранировать слешом в строке символы [ ] и пробел. Делаю так:

PHP:
$name = preg_replace('~([\s\[\]])~isS', '\\\\$1', $name);
Но ума не приложу, почему такой вариант:
PHP:
$name = preg_replace('~([\s\[\]])~isS', '\\$1', $name);
Ничего не заменяет, и на выходе получается исходная строка.

Или я чего-то не понимаю, или это баг, связанный с не учтённой внутренней возможно, (частично)лишней обработкой слешей
 
потому что, ты заменяешь всё что лежит в кармане - между скобками, на тоже самое...
и чо слешей помоему у тебя мнговато там...
 
так как раз вариант с четырьмя слешами работает верно.
Строка "[ p" Заменяется на "\[\ p"
 
Сверху