Калининград+7.962.2626.555

Регулярные выражения. Теория и практика

30.01.2013

Теория

Синтаксис регулярного выражения такой: /шаблон/модификатор. Т.е. само регурярное выражения заключаются между //.

Для работы чаще всего используются следующие функции:

preg_match(regexp, строка для поиска) Ищет строку по шаблону. Возвращает TRUE , если находит и FALSE если нет
preg_replace(regexp, на что заменяем, строка для поиска) Ищет строку по шаблону и заменяет ее другой строкой
preg_split() Разбивает строку по шаблону и возвращает массив из подстрок
preg_quote(строка) Добавляет обратный слэш перед каждым служебным символом

 

Практика

Лучше один раз увидеть.

Регулярное выражение Что означает
/abc/ Строка «abc»
/^abc/ Строка начинается на «abc»
/abc$/ Строка заканчивается на «abc»
/[abc]/ Или «a», или «b», или «c»
/[a-z]/ Любой символ латинского алфавита в нижнем регистре
/[A-Z]/ Любой символ латинского алфавита в верхнем регистре
/[0-7]/ Любое число от 0 до 7
/[0-9]/ Любое число
/[a-zA-Z]/ Любой латинский символ в любом регистре
/[a-zA-Z0-9]/ Любой латинский символ или любое число
/[^abc]/ Не «a», не «b», не «c»
/[^a-z]/ Любой латинский символ не в нижнем регистре
/[^A-Za-z0-9]/ Любой не латинский символ и не число
/abc|def/ Строка «abc» или строка «def»
/jpe*g/ Строка «jpeg» или строка «jpg», или строка «jpeeeeeg» и т.д. Символ * после «e» говорит о том, что «e» может встречаться любое количество раз или не встречаться вообще. Другие возможные случаи указаны ниже на схеме в разделе «кванторы».
/([A-Z]{2}|[0-9]{3})/ Два латинских символа или три числа

 

Схема в помощь: