Функция str_replace и регулярные выражения

Функция str_replace и регулярные выражения

От автора: приветствую вас, друзья. В этой статье мы познакомимся с функцией str_replace, как определенной альтернативе регулярным выражениями. Итак, функция str_replace и регулярные выражения. Приступим?

Регулярные выражения — очень мощное средство для поиска и замены в тексте. Однако при решении простых задач поиска и замены далеко не всегда стоит прибегать к средствам регулярных выражений. Это будет сродни стрельбе из пушки по воробьям. Задачу-то вы решите, но средств для ее решения потратите больше, чем могли бы.

Например, перед нами стоит следующая простейшая задача. Есть строка с группами цифр, разделенных пробелами. Необходимо эти пробелы заменить, скажем, символом тире. Задача действительно простейшая и решить ее можно таким же простейшим шаблоном регулярного выражения:

Однако эту же задачу можно решить и без регулярных выражений. Для решения можно обратиться к функциям для работы со строками, в частности в PHP это будет функция str_replace. Функция принимает три обязательных параметра:

search — что ищем

replace — на что меняем

subject — где ищем и меняем

Решим задачу, используя функцию str_replace:

$str = '1111 2222 3333 4444';
echo str_replace(' ', '-', $str);

Результат получим тот же, что и с использованием регулярных выражений. Приятным бонусом может стать тот факт, что функция str_replace может работать не только со строками, но и с массивами (array). Примеры работы можно найти в документации.

Стоит учитывать, что функция str_replace регистрозависима. Например, если мы захотим изменить все буквы «r» в некой строке, то будут заменены только буквы указанного регистра:

$str = 'rRr';
echo str_replace('r', '!', $str); // !R!
echo '<br>';
echo str_replace('R', '!', $str); // r!r

Но есть и регистронезависимый аналог этой функции — str_ireplace, который в остальном работает точно так же:

$str = 'rRr';
echo str_ireplace('r', '!', $str); // !!!

Конечно же, это простые задачи и уже для более сложных придется все-таки обращаться к помощи регулярных выражений. Но если мы можем обойтись без тяжелой артиллерии, тогда зачем палить из пушки по воробьям?

На этом у меня все. Больше о регулярных выражениях вы можете узнать из нашего курса по регулярным выражениям. Удачи!

Хотите изучить регулярные выражения на PHP?

Прямо сейчас посмотрите 12-ти часовой курс по регулярным выражениям на PHP!

Смотреть курс

Метки:

Комментарии Вконтакте:

Комментарии Facebook:

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

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

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Я не робот.

Spam Protection by WP-SpamFree