САМОУЧИТЕЛЬ PHP 4



         

Использование карманов в функции замены


Мы рассмотрели только самый простой способ использования карманов — прямой их просмотр после выполнения поиска. Однако возможности, предоставляемые языком RegEx, куда шире. Особенно часто эти возможности применяются для замены с помощью регулярных выражений.

Предположим, нам нужно все слова в строке, начинающиеся с "доллара" $, сделать "жирными", — обрамить тэгами <b> и </b>, — для последующего вывода в браузер. Это может понадобиться, если мы хотим текст некоторой программы на PHP вывести так, чтобы в нем выделялись имена переменных. Очевидно, выражение для обнаружения имени переменной в строке будет таким: \$[a-zA-Z_][[:alnum:]]*.

Но как нам использовать его в функции ereg_Replace()? Вот фрагмент программы, которая делает это:

$str="<? $a=10; for($i=0; $i<10; $i++) echo $i; ?> // ê ïðèìåðó

$str=ereg_Replace("(\\$[a-zA-Z_][[:alnum:]]*)","<b>\\1</b>",$str);

Пожалуйста, обратите опять внимание на то, что слэши должны удваиваться.

Нетрудно догадаться, как "оно"

работает: просто во время замены везде вместо сочетания \1 подставляется содержимое кармана номер 1.




Содержание  Назад  Вперед