ТОП-10 популярных



Для работы с вещественными числами в MySQL предусмотрено три типа данных - это типы FLOAT, DOUBLE, DECIMAL. Числовой тип FLOAT...

НОУТБУК с блестящим экраном
Eсли выпустившая ноутбук фирма предлагает его в качестве «замены настольному ПК», то это должно подразумевать под собой нечто большее, чем...

БОЛЬШЕ БОЛЬШИХ LCD-мониторов
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...

Больше больших LCD-мониторов
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...

Магнито-оптический дисковод DynaMO
Cейчас, когда традиционные флоппи-дисководы на долгие годы замерли в своем развитии, поиск альтернативных носителей продолжается, и ситуация, казалось бы, разрешилась...

Иди и пиши. TravelMate C100
Планшетный компьютер платформы Tablet PC обязан в первую очередь быть легким, способным достаточно долго работать без подзарядки батарей. Эти требования...

ПОД ЛИТЕРОЙ «N»
Aтаку LCD-мониторов не остановить, а масштабы этого наступления даже немного пугают. Судите сами — многие пользователи только начинают приглядываться к новому для...


Для длинных строк, т.е. строк длиннее 255 символов, в MySQL предусмотрены типы BLOB (Binary Large Object, большой двоичный объект) и...

Размер объему не помеха.
С тех пор как компания Fujitsu отказалась от производства жестких дисков для настольных компьютеров, многие пользователи начали забывать о том,...


Какую только информацию мы не помещаем на компакт-диски: резервные копии важных данных, музыку, фильмы... Многие полагают, что главное - «купить...

PHP. Синтаксический анализ и обработка строк. Часть Вторая.


24-05-2015

22.2. Регулярные выражения
К счастью, PHP предлагает и более мощные инструменты, чем функция strtok, - регулярные выражения. Описанные на своем собственном языке, регулярные выражения позволяют описывать шаблоны, которые затем сравниваются со строками. Исходный код PHP включает в себя реализацию регулярных выражений, удовлетворяющих стандарту POSIX 1003.2. Этот стандарт позволяет создавать не только выражения старого стиля, но и работать с новым стилем, который описывается ниже. Подробное описание регулярных выражений см. в главе 12, "Кодирование и декодирование". 
В 1999 году Андрей Змиевский добавил в PHP поддержку регулярных выражений, соответствующих стилю языка Perl. Они имеют два преимущества перед оригинальными регулярными выражениями PHP: упрощают копирование выражений из сценария Perl и выполняются быстрее.
Более глубокое изучение регулярных выражений выходит за рамки настоящей книги. Регулярные выражения - это тема для отдельной книги, здесь же затрагиваются только основы и описываются различные PHP-функции, в работе которых используются регулярные выражения. Отличным источником информации о регулярных выражениях является книга Элли Квигли (Ellie Quigley) UNIX Shells by Example. Если есть желание узнать побольше о регулярных выражениях PERL-стиля, обратитесь к официальному Web-узлу с документацией по Perl (<http://www.perldoc.com/ perl5.8.0/pod/ perlre.html>). Затем нужно ознакомиться с документацией на самом Web-узле PHP, где описываются различия между реализацией регулярных выражений в Perl и PHP (<http://www.php.net/manual/pcre.pattern.syntax.php>). Действительно, реализации регулярных выражений в PHP присуще несколько отличий, но большинство выражений Perl выполняются в PHP в неизменном виде.
22.3. Определение регулярных выражений
На верхнем уровне регулярное выражение представляет собой одну или несколько ветвей, разделенных вертикальной чертой (|). Этот символ должен обладать свойствами "логического ИЛИ", т.е. любая из строк должна соответствовать оцениваемой строке. Несколько примеров такой строки приводится в табл. 22.1.
Синтаксический анализ и обработка строк
Каждая ветвь содержит один или несколько атомов, с помощью которых определяется количество соответствий данному атому. Символ звездочка (*) свидетельствует о том, что соответствие атому может определяться любое количество раз. Знак "плюс" (+) означает, что соответствие атому может определяться как минимум один раз. Знак вопроса (?) " свидетельствует о том, что соответствие атому может определяться один раз или не соответствовать совсем.
Кроме того, атом может быть связан, что означает, что он содержит число, заключенное в фигурные скобки ({}). Если в фигурных скобках содержится одно число, это означает, что атом должен иметь соответствие именно такое число раз. Если в фигурные скобки заключены число и запятая, атом должен соответствовать именно такое или большее количество раз. Если в скобках указываются два числа, разделенных запятыми, это означает, что атом должен соответствовать по меньшей мере число раз, равное первому числу, но не более числа раз, указанных вторым числом. Примеры правил повторения приведены в табл. 22.2.
Синтаксический анализ и обработка строк
Атомом называется последовательность символов, из которых одни могут иметь специальное значение, а другие просто соответствуют определенному символу. Символ точки (.) соответствует любому одиночному символу, (Л) - началу строки, символ доллара ( $) - завершению строки. Если необходимо указать соответствия специальному символу (Л . [] $ () | * ? {} ), его необходимо предварить обратной косой чертой. В принципе любой символ, предваряемый символом обратной косой черты, будет рассматриваться как литерал, даже если у него нет никакого специального значения. Любой символ, не имеющий специального значения, считается символом, который должен соответствовать независимо от того, следует он за обратной косой чертой, или нет. Атом группируется с помощью скобок.

Понравился материал? Поделитесь с друзьями!



<< Предыдущая статьяСледующая статья >>
PHP. Синтаксический анализ и обработка строк PHP. Синтаксический анализ и обработка строк. Часть Третья.