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

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

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

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

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

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

search — что ищем

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

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

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

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

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

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

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

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

Метки:

Похожие статьи:

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