Main > PHP > preg_replace и номера карманов

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

12.02.2012 0 comments » Views: 1,408

RegExp

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

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

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

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

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

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

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

Author: | Rating: 4/5 | Tags:

Leave a Reply

Your email address will not be published. Required fields are marked *

Allowed HTML-tags: <a>, <code>, <i>, <em>, <strong>, <b>, <u>, <strike>