RTFM! статьи, советы, скрипты
::Заработок с помощью сайта ::JScript по-русски! ::Все русские мануалы::
МЕНЮ
О САЙТЕ
НОВОСТИ
СТАТЬИ
КНИГИ
АППЛЕТЫ
СВЯЗЬ

СЧЕТЧИКИ
Rambler's Top100
Рейтинг@Mail.ru
Яндекс цитирования

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

Автор: pauk Сайт: http://www.pauk2001.h1.ru/     Рейтинг: N/A из 7       <<НАЗАД
   
   
   Введение
   
   Программируете на PHP? Часто задаетесь вопросом: "Все ли данные, введенные пользователем, являются корректными? Как это предусмотреть?" Данные проблемы легко разрешаются с помощью "регулярных выражений". А что это за зверь, и с чем его едят рассмотрим далее. В данной статье я рассмотрю одни из стандартов регулярных выражений - RegExp.
   
   Функции
   
   Любое регулярное выражение это строка, содержащая набор специальных символов. Эта строка является этаким шаблоном для поиска подстроки. Рациональнее всего применять регулярные выражения в том случае, когда точно неизвестно что именно нужно искать. К примеру, вам нужно проверить на соответствие строки email'y или url'y сайта. Для работы с регулярными выражениями RegExp в PHP реализованы следующие функции ereg(), eregi(), ereg_replace(), eregi_replace(), split(). spliti() Рассмотрим их синтаксис:
   
   - ereg(string $regstring, string $str [, list $Arr])
   
   Функция сопоставляет выражение $regstring строке $str. В случае если искомая подстрока найдена, функция возвращает true, иначе - false. Если задан необязательный массив список $Arr, то в него записываются все найденные участки совпадения. Об этих участках немного позже. Функция eregi() имеет аналогичный синтаксис, только без учета регистра символов.
   
   - ereg_replace(string $regstring, string $strToChange, string $str)
   
   Функция ищет в строке $str подстроки, соответствующие выражению $regstring и заменяет их на строку $strToChange, которая может содержать некоторые управляющие символы. Функция eregi_replace() имеет аналогичный синтаксис, только без учета регистра символов.
   
   - split(string $spliter, string $str, [, $max])
   
   Функция возвращает массив - список, полученный в результате разбиения строки $str разделителем $spliter. Необязательный параметр $max задает максимальный размер массива. Функция split() имеет аналогичный синтаксис, только без учета регистра символов.
   
   Группы символов
   
   А теперь приступим к изучению непосредственно регулярных выражений. Для начала рассмотрим группы символов. Существует несколько спецсимволов, обозначающих сразу группу букв. Одним из таких является ".", обозначающий один любой символ. Т.е допустим выражению s.sop будут соответствовать слова sisop, sosop и т.д, но не srtsop или stusop. Допустим только один символ!
   
   А если вам нужно искать один из нескольких символов? Для этого есть спецсимволы [ ]. К примеру, выражению d[ty]p будут соответствовать только слова dtp и dyp. Если таковых букв много и они идут в каком либо порядке, то их можно указывать через тире ("-"). Выражению [0-9] будут соответствовать все цифры, выражению [A-Z] любая заглавная буква латинского алфавита. Наиболее часто встречающиеся группы символов в RegExp обозначаются специальными словами заключенные между [: и :]. Вот наиболее часто используемые из них:
   
   [:alpha:] - буква.
   
   [:digit:] - цифра
   
   [:blank:] - пробельный символ или символ с кодом от 0 до 255.
   
   [:space:] - пробельный символ
   
   [:alnum:] - буква или цифра
   
   [:lower:] - символ нижнего регистра
   
   [:upper:] - символ верхнего регистра
   
   [:punct:] - знак пунктуации
   
   Данные комбинации должны находиться в вышеупомянутых символах [ ]. К примеру выражение com[[:digit:]] будет обозначать комбинацию букв com и одной цифры. Но не в коем случае com[:digit:] - работать не будет.
   
   Существуют еще отрицательные группы, в которых указываются символы, которые должны отсутствовать в подстроках. Реализуется эту с помощью тех же [] и символа ^. Выражение [^abc] соответствует любой букве кроме латинских a, b и c.
   
   Если вам необходимо искать в строке символы, использующиеся в RegExp как спецсимволы, то вам необходимо их предварить двойным обратным слешем ("\\"). То есть для поиска строки $some вам необходимо создать выражение \\$some, и это относится ко всем специальным символам ([]{}^$|+.*?)
   
   


<<НАЗАД      ОЦЕНИТЬ СТАТЬЮ    ВЕРСИЯ ДЛЯ ПЕЧАТИ>>
Статья прочитана :  раз.




пейкюлю



 
 
 
 
 
pauk ©® 2000-2015. All rights reserved.
При перепечатке ссылка на сайт и указание обязательны.
Мнение администрации сайта не всегда совпадает с мнением автора.
Орфография и пунктуация - авторские.
Администрация не несет никакой ответственности за использование материалов.
.
Protected by Copyscape DMCA Takedown Notice Infringement Search Tool