preg_replace и номера карманов
Представим себе такой случай: есть текст, "Поздравляю всех с Новым, 20 годом"
И мы хотим с помощью preg_replace сделать замену 20 на 2011.
Пишем регулярку: preg_replace('|([0-9]{2})|', '$111', $str);
Чем компилятор приводим в шок, т.к. он не найдет карман с номером 111. Что же делать?
Все достаточно просто, и инфа об этом есть в хелпе на пхп.нет, но такие мелочи часто забываются..
Так вот, в нашем примере правильно будет, заключить номер в фигурные скобки, а перед $ поставить слеш, вот так:
preg_replace('|([0-9]{2})|', "\${1}1", $str);
(!) Обратите внимание:
Обязательно использовать двойные кавычки - "
Теперь мы получим то, что и хотели!
P.S. Пример, разумеется, не из реальной жизни, а просто для демонстрации.
Author: | Tags: /
| Rating:
Leave a Reply