PHP

Функция preg_replace()

В данном уроке рассмотрен вариант замены первого вхождения символа плюс в строку.
Функция preg_replace - выполняет поиск и замену по регулярному выражению.
Синтаксис функции такой:
mixed preg_replace (mixed pattern, mixed replacement, mixed subject [, int limit])

Разберём синтаксис.
pattern - это шаблон по которому ищется совпадение в строке subject и если оно найдено, то оно заменяется строкой replacement. Причём замена происходит во всей строке. Для того чтоб сократить аппетит функции preg_replace и заменить только первое вхождение заданного символа (или словосочетания) в строке, limit должен быть равен единице. Если лимит не указан или равен -1, функция preg_replace делает замену во всей строкеreplacement, где находится совпадение с патерном (pattern).
Хочу отметить, что здесь я не касаюсь всей функциональности preg_replace функции, для этого есть документация. Могу только дополнить что паттерном может быть массив значений, в прочем как и replacement.
В примере ниже заменим первое вхождение знака плюс (+) на знак не равно (<>).

Листинг № 1 - Поиск и замена с помощью функции preg_replace.
<?php 
     
    $str="1+2*3+4/5+6"; 
     
    $patterns ="/[+]/"; 
    $replace = "<>"; 
    print preg_replace($patterns, $replace, $str, 1); 
     
    // выведет 1<>2*3+4/5+6 
?>

Меняем знак между десятичных цыфр
Как заменить все точки в строке, которые находятся между цифр?
В данном примере используется именно этот ответ на вопрос выше, но понятно, что это всего лишь пример и его можно модифицировать используя конструкции регулярных выражений ретроспективной проверки (?<= и опережающей проверки (?=

Листинг № 2 - Меняем знак между десятичных цыфр
<?php  

$string = 'Сегодня: ' .date('d.m.Y время H.i.s').  
'<br>В этом тексте нужно заменить точку (.) в выражениях (18.01.2013) или в выражениях подобных 17.40. В тексте точка меняться не будет.';

$pattern = "/(?<=d).(?=d)/"; 

$replacement = "-"; 

echo preg_replace($pattern, $replacement, $string); 

?>

Урок закончен.
Добавлено: 15 Августа 2013 12:13:34 Добавил: Андрей Ковальчук Нравится 0
Добавить
Комментарии:
Нету комментариев для вывода...