PHP. Регулярные выражения |
||||
---|---|---|---|---|
следующие функции: split(), ereg(), ereg_replace(). (доп. редактора). Первым аргументом для всех трех функций - это строка, задающая регулярное выражение. Этот строка состоит из регулярных и специальных символов. Регулярные символы имеют то же значение что и при в других командах Unix, в то время как специальные символы имеют специальное значение. Далее следуюет - полный список специальных символов и их значения как это воспринимает синтаксический анализатор PHP: .' Является специальным символом, который соответствует любому символу,
за *' Сам по себе это не конструкция; это - суффикс, который означает,
что В случае нулевого количества символов "o" строка "fo*" будет
также Символ "*" Всегда применяет к *наименьшему* возможному
предшествующему Процесс сравненияr обрабатывает конструкцию "*", пытаясь согласовать
настолько +' "+" Подобен "*" за исключением того, что требуется по крайней мере
одно ?' "?" Подобен "*" за исключением того, что позволяет задать нуль или
более [ ... ]' "[" начинает "множество символов", которое завершается символом
"]". Диапазон символов также может быть включен в множество символов, с
помощью Обратите внимание, что символы, обычно являющиеся специальными,
внутри Для того чтобы включить "]" в множество символов, нужно сделать его
первым [^ ... ]' "[^" начинает "исключающее множество символов", который задает
любой ^' Является специальным символом, который задает пустую строку - но только
в $' Подобен "^", но только задает конец строки. Так шаблон, "xx*$"
задает \' Имеет два значения: экранирует вышеперечисленные специальные
символы Так как "\" экранирует специальные символы, "\$" является
регулярным В основном, "\" с последующим любым символом соответствует только
этому Никакие новые специальные символы не определены. Все расширения к
синтаксису \|' Задает альтернативу. Два регулярных выражения A и B с "\|" между
ними Так выражение, "foo\|bar" или "foo" или "bar", но никакую другую строку. "\|" применяется к максимально большим окружающим выражениям. Только
"\(...\)" Существует полная возможность перебора с возвратами , когда задано
множество \( ... \)' является конструкцией группирования , которая служит трем целям:
1. 2. Включать сложное выражение для постфиксного "*". Так шаблон
"ba\(na\)*" 3. Отметить искомую подстроку для последующего обращения. Эта последняя функция - не следствие идеи относительно группировки
выражений \DIGIT' После окончания конструкции "\(...\)" , анализатор запоминает начало
и Строкам задающим первые девять конструкций "\(...\)" , появляющимся
в Например, шаблон "\(.*\)\1" задает любую строку, который состоит из
двух Сохраненные конструкции или регистры могут использоваться внутри
одиночных <?$string = "This is a test"; $cnt = reg_match("\(\w*\).*\(\") echo $cnt;
echo Вышеупомянутое сначала напечатает количество совпавших символов (14 в
этом \b' Задает пустую строку, но только, если она находится в начале или в
конце \B' Задает пустую строку, если она не в начале или не в конце слова. \<' Задает пустую строку, но только, если она - в начале слова. \>' Задает пустую строку, но только, если она в конце слова. \w' Задает любой символ, являющийся составной частью слова. \W' Задает любой символ, который - не является составной частью слова.
$s = implode($a,$c); Мы уже познакомились с этой функцией в прошлом
выпуске. $a[0] = "String1"; $a[1] = "String2"; $a[2] = "String3"; Соответственно, функция implode($a, "***") вернет нам
строку $a = explode($c,$s); Функция explode является обратной implode. Она
разбивает $a[0] = "String1"; $a[1] = "String2"; $a[2] = "String3"; $a = split($c,$s); Работа фунции абсолютно идентична explode, за
тем ereg($c,$s); Функция ereg возвращает истину, если в строке $s
найдено <? $s = "Here is testing string"; if (ereg("^Here.*",$s)) echo
"Найдено!"; А вот небольшой пример, который ищет шаблон в любой части слова: <? $s =
"Here $s = ereg_replace($c,$c1,$s); Эта функция заменяет все символы в строке
$s, <? $s = "1 Here 2 is 3 testing 4 string 5"; $s =
ereg_replace("[0-9]","+",$s); Как видите, функция возвращает результат в заданную переменную. $s
= |