Регулярные выражения. Регулярное выражение(шаблон или образец поиска) представляет собой последовательность простых и служебных символов

Регулярное выражение(шаблон или образец поиска) представляет собой последовательность простых и служебных символов, описывающих искомый текст.В РНР существуют два семейства функций, каждое из которых относится к определенному типу регулярных выражений: в стиле POSIX или в стиле Perl.

Структура регулярных выражений POSIX чем-то напоминает структуру типичных математических выражений - различные элементы объединяются друг с другом и образуют более сложные выражения. Простейшее регулярное выражение совпадает с одним литеральным символом - например, выражение g совпадает в таких строках, как g, haggle и bag. Выражение, полученное при объединении нескольких литеральных символов, совпадает по тем же правилам - например, последовательность gan совпадает в любой строке, содержащей эти символы (например, gang, organize или Reagan).

Оператор | (вертикальная черта) проверяет совпадение одной из нескольких альтернатив. Например, регулярное выражение php | zend проверяет строку на наличие php или zend.

Квадратные скобки ([ ]) имеют особый смысл в контексте регулярных выражений — они означают «любой символ из перечисленных в скобках». В отличие от регулярного выражения php, которое совпадает во всех строках, содержащих литеральный текст php, выражение [php] совпадает в любой строке, содержащей символы р или h. Ниже перечислены некоторые часто используемые интервалы:

[0-9] - совпадает с любой десятичной цифрой от 0 до 9;

[a-z] - совпадает с любым символом нижнего регистра от а до z;

Квантификаторы этослужебные символы (+, * и {...}), обозначающие количество повторений отдельного символа или конструкции, заключенной в квадратные скобки. Принцип их действия проще всего пояснить на примерах:

р+ означает один или несколько символов р, стоящих подряд;

р* означает ноль и более символов р, стоящих подряд;

р? означает ноль или один символ р;

р{2} означает два символа р, стоящих подряд;

р{2,3} означает от двух до трех символов р, стоящих подряд;

р{2,} означает два и более символов р, стоящих подряд.

Служебные символы $ и ^ совпадают не с символами, а с определенными позициями в строке. Например, выражение р$ означает строку, которая завершается символом р, а выражение ^р — строку, начинающуюся с символа р.

Конструкция [^a-zA-Z] совпадает с любым символом, не входящим в указаные интервалы (a-z и A-Z).

Служебный символ . (точка) означает «любой символ». Например, выражение р.р совпадает с символом р, за которым следует произвольный символ, после чего опять следует символ р.

Объединение служебных символов приводит к появлению более сложных выражений.

Рассмотрим несколько примеров:

^.{2}$ — любая строка, содержащая ровно два символа;

<b>(.*)</b> — произвольная последовательность символов, заключенная между <Ь> и </Ь> (вероятно, тегами HTML для вывода жирного текста);

p(hp)* — символ р, за которым следует ноль и более экземпляров последовательности hp (например, phphphp).

Иногда требуется найти служебные символы в строках вместо того, чтобы использовать их в описанном специальном контексте. Для этого служебные символы экранируются обратной косой чертой (\). Например, для поиска денежной суммы в долларах можно воспользоваться выражением \$[0-9]+, то есть «знак доллара, за которым следует одна или несколько десятичных цифр». Возможными совпадениями для этого регулярного выражения являются $42, $560 и $3.








Дата добавления: 2015-04-15; просмотров: 1012;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.005 сек.