Совпадение с регулярным выражением


(PHP 4, PHP 5)

eregСовпадение с регулярным выражением

Описание

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

Ищет в строке string совпадения с регулярным выражением, заданным в pattern регистрозависимым образом.

Внимание

С версии PHP 5.3.0 эта функция считается УСТАРЕВШЕЙ. Крайне не рекомендуется полагаться на эту возможность.

Список параметров

pattern

Регулярное выражение, чувствительное к регистру.

string

Входная строка.

regs

Если совпадения найдены для подстрок в скобках из pattern, и функция вызывается с третьим аргументом regs, совпадения будут сохранены в элементах массива regs.

$regs[1] будет содержать подстроку, которая начинается с первой левой круглой скобки; $regs[2] будет содержать подстроку, начинающуюся со второй, и т.д. $regs[0] будет содержать полную копию совпавшей строки.

Возвращаемые значения

Возвращает длину совпавшей строки, если совпадение c pattern найдено в string, или FALSE, если совпадений не было или возникла ошибка.

Если необязательный параметр regs не передан, или длина совпавшей строки равна 0, функция возвращает 1.

Список изменений

Версия Описание
4.1.0 Вплоть до (и включая) PHP 4.1.0 $regs будет заполняться точно десятью элементами, хотя реально может совпасть больше или меньше десяти подстрок в скобках. Это не влияет на способность ereg() совпадать с большим количеством подстрок. Если совпадения не найдены, $regs не будет изменен функцией ereg().

Примеры

Пример #1 Пример использования ereg()

Следующий фрагмент кода принимает дату в формате ISO (YYYY-MM-DD) и печатает её в формате DD.MM.YYYY:

<?php
if (ereg ("([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})"$date$regs)) {
    echo 
"$regs[3].$regs[2].$regs[1]";
} else {
    echo 
"Недопустимый формат даты: $date";
}
?>

Примечания

Замечание:

С версии PHP 5.3.0, расширение regex помечено устаревшим и заменено расширением PCRE. Вызов этой функции приведет к ошибке уровня E_DEPRECATED. Смотрите список отличий для помощи при конвертировании в PCRE.

Подсказка

Функция ereg() является устаревшей начиная с PHP 5.3.0. Предлагается использовать вместо нее функцию preg_match().

Смотрите также

  • eregi() - Совпадение с регулярным выражением без учёта регистра
  • ereg_replace() - Осуществляет замену по регулярному выражению
  • eregi_replace() - Осуществляет замену по регулярному выражению без учета регистра
  • preg_match() - Выполняет проверку на соответствие регулярному выражению
  • strpos() - Возвращает позицию первого вхождения подстроки
  • strstr() - Находит первое вхождение подстроки
  • quotemeta() - Экранирует специальные символы