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

Регулярные выражения — мощный инструмент для поиска и замены текста. Вам нужно найти и заменить слова, заключенные в HTML-теги? Или Вам нужно найти все IP-адреса в строке? Вам нужно убедиться, что введенный пароль не состоит из одних лишь цифр? Тогда Вам нужно использовать регулярые выражения, они превосходно справятся с этими задачами!

Регулярные выражения очень мощны, но довольно трудны для чтения и восприятия. Например, следующее выражение выглядит шифром, если вы не читаете его посимвольно:

/^(1[- ]*)?\(?\d{3}\)?[.- ]*\d{3}[.- ]*\d{4}$/ 

Данная строка поначалу выглядит мусором, но это регулярное выражение ищет телефонные номера в строке. На самом деле в этой строке нет ничего феноменального, вам нужно только научиться их читать.

Основы регулярных выражений

В PHP можно использовать два типа регулярных выражений: расширенные POSIX и Регl-совместимые. Имена функций, работак›щих с POSIX-вмра- жениями, начинак›тся на ereq, а имена Регl-совместимых функций — preg. Между этими форматами естъ небольшие различие в синтаксисе и иногда очень большое раэличие в производительности. Наиболее популярным яв- ляется Регl-совместимый синтаксис, который и описан в этой книге.

Одна из особенностей Регl-совместимых регулярных выражений — это та, что вам нужно их заклк›чать в специальные разделители. Большинство разработчиков используют слеш (/), поскольку подобным образом вводятся регулярные выражения в редакторе vi.

Давайте посмотрим, есть ли слово fred в строке? Регулярное выражение будет простым — fred и все (без всяких специальных символов). Вот при- мер использования регулярного выражения:

if (preg_match('/fred/', 'I saw Alfred over there')) { print 'I found fred!',

Регулярное выражение — это строка между разделителями (слешами). Вы должны использовать одинарные кавычки вместо двойных, поскольку символы строки, заклключенные в одинарные кавычки, трактуются как есть, что немаловажно для регулярных  выражений.

Вы можете использовать другой разделитель, вроде (|), если вам нужно использовать слеши в ваших регулярных выражениях, например в URL.

Разделители в Регl-совместимых выражениях делают их более комфортными, но в то же время они немного смущают новичков, но они позволяют иcпoльзoвaть дополнительные функции, которые называются модификаторами. Один из наиболее часто используемых модификаторов — i, он делает регулярные выражения нечувствительными к регистру символов. Поэтому если вам нужно найти fre, Fred, FRED, fRED, вам можно использовать следующее регулярное выражение: / fred/ :і.

Метки записи: