Главная > PHP > preg_replace и номера карманов

preg_replace и номера карманов

12.02.2012 0 коммент. » Просмотры: 1 405

RegExp

Представим себе такой случай: есть текст, "Поздравляю всех с Новым, 20 годом"
И мы хотим с помощью preg_replace сделать замену 20 на 2011.
Пишем регулярку: preg_replace('|([0-9]{2})|', '$111', $str);
Чем компилятор приводим в шок, т.к. он не найдет карман с номером 111. Что же делать?

Все достаточно просто, и инфа об этом есть в хелпе на пхп.нет, но такие мелочи часто забываются..

Так вот, в нашем примере правильно будет, заключить номер в фигурные скобки, а перед $ поставить слеш, вот так:

preg_replace('|([0-9]{2})|', "\${1}1", $str);

(!) Обратите внимание:
Обязательно использовать двойные кавычки - "

Теперь мы получим то, что и хотели!

P.S. Пример, разумеется, не из реальной жизни, а просто для демонстрации.

Автор: | Рейтинг: 4/5 | Теги:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Разрешены HTML-теги: <a>, <code>, <i>, <em>, <strong>, <b>, <u>, <strike>