Регулярные выражения в PHP.

Регулярные выражения (regular expressions) – это достаточно сложная, но интересная функциональная возможность PHP, которая позволяет выполнить основные и самые необходимые проверки переменных или произвести манипуляции над строками. Регулярные выражения представляют собой шаблон и призваны проверить, соответствует ли ему строка.

Язык PHP поддерживает два типа регулярных выражений – стандартные POSIX и Perl.

Функции регулярных выражений PHP

Функция ereg()

Функция ereg() ищет в строке соответствие регулярному выражению. В общем виде она выглядит следующим образом:

int ereg(
  string pattern,
  string string
  [, array regs] )

У функции три параметра, первые два из которых являются обязательными:

  • pattern – регулярное выражение;
  • string – строка, в которой происходит поиск;
  • regs – переменная, в которую будет помещен массив найденных значений.
Функция eregi()

Функция eregi() идентична ereg(), но при поиске нечувствительна к регистру букв. Параметры у обеих функций одинаковы.

Функция ereg_replace()

Эта функция ищет в строке регулярное выражение и заменяет его новым значением:

int ereg_replace(
  string pattern,
  string replacement,
  string string)

Параметры функции:

  • pattern – регулярное выражение;
  • replacement – новое значение;
  • string – строка, в которой происходит поиск.
Функция eregi_replace()

Функция eregi_replace() идентична ereg_replace(), но игнорирует регистр. Параметры у обеих функций одинаковы.

Функция split()

Функция split() разбивает строку в соответствии с регулярным выражением и возвращает массив строк. В общем виде она выглядит так:

array split(
  string pattern,
  string string
  [, int limit] )

Параметры функции:

  • pattern – регулярное выражение;
  • string – строка, в которой происходит поиск;
  • limit – ограничение количества найденных значений.
Функция spliti()

Функция spliti() идентична split(), но чувствительна к регистру букв во время поиска регулярного выражения.

Использование регулярных выражений

Рассмотрим простейший пример, в котором символы “BI” в строке заменяются HTML-тегами <B><I>:

$text= "BI Hello world from PHP";
$newtext = eregi_replace("BI", "<B><I>", $text);
echo($newtext);

В виде регулярного выражения может выступать классическая подстройка, которую нужно найти.

Усложни задачу. Допустим, что нужно найти подстройку “BI” или “IB”. Для этого можно разделить искомые подстройки символов вертикальной черты:

$text= "BI Hello world from PHP";
$newtext = eregi_replace("BI|IB", "<B><I>", $text);
echo($newtext);

Вертикальная черта выступает в роли логического ИЛИ, и функция ищет любое из значений слева или справа от черты. Например:

$text= "BI IB IBB Hello world from PHP";
$newtext = eregi_replace("BI|IB|IBB", "replaced", $text);
echo($newtext);

Примеры регулярных выражений

1. Удаляем определённую ссылку в переменной text

$text = preg_replace("~<a href=\"http://www\.aaa\">[^<]+?</a>~",'',$text);

2. Удаляем комментарии в переменной text

$text = preg_replace('#<!--.*-->#sUi', '', $text);

3. Удаляем спецсимволы

$text = preg_replace ("~(\\\|\*|\?|\[|\?|\]|\(|\\\$|\))~", "",$text);

4. Удаляем всё, что между < >

$text = preg_replace('/(<([^>]+)>)/U', '', $text);

5. Удаляем конкретные символы из строки

$text = str_replace('#39;', '', $text); // удаляем одинарные кавычки
$text = str_replace('"', '', $text); // удаляем двойные кавычки
$text = str_replace('&', '', $text); // удаляем амперсанд
$text = preg_replace('/([?!:^~|@№$–=+*&%.,;\[\]<>()_—«»#\/]+)/', '', $text); // удаляем недоспустимые символы

 
Поделиться в facebook
Facebook
Поделиться в twitter
Twitter
Поделиться в vk
VK
Поделиться в google
Google+
Поделиться в email
Email

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

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

Группа в VK

Помощь проекту

Обнаружили опечатку?

Сообщите нам об этом, выделите текст с ошибкой и нажмите Ctrl+Enter, будем очень признательны!

Свежие статьи

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

Фреймворк Yii

Фреймворк Yii

Yii — это высокоэффективный основанный на компонентной структуре PHP-фреймворк для разработки масштабных веб-приложений. Он позволяет максимально применить концепцию повторного использования кода и может существенно ускорить

 
Библиотека RedBeanPHP.

Библиотека RedBeanPHP.

RedBeanPHP – это мощная ORM для PHP, которая значительно упрощает работу с базами данных. ORM или Object-relational mapping (Объектно-реляционное отображение) — это технология программирования, которая

 
Безопасное хеширование паролей в PHP.

Безопасное хеширование паролей в PHP.

Такие хеширующие алгоритмы как MD5, SHA1 и SHA256 были спроектированы очень быстрыми и эффективными. При наличии современных технологий и оборудования, стало довольно просто выяснить результат

 

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: