Главная
Скачать (Download)
Dreamweaver CS6
Dreamweaver CS5
Dreamweaver CS4
Dreamweaver 8
Dreamweaver MX 2004
Dreamweaver 4
Уроки (Tutorials)
Видеоуроки new!!!

Fireworks
ЧаВо
Документация
Статьи
Программы и скрипты
Бесплатные шаблоны
Каталог сайтов
Форум
Карта сайта
Контакты



Документация - Главная
- Macromedia Dreamweaver
- CSS
- Раскрутка
- PHP
- SQL
- Дизайн [1 2]
- Java
- Разное

главная > статьи >

Синтаксис регулярных выражений (POSIX)

Структура регулярных выражений POSIX чем-то напоминает структуру типичных математических выражений - различные элементы(операторы) объединяются друг с другом и образуют более сложные выражения. Однако именно смысл объединения элементов делает регулярные выражения таким мощным и выразительным средством. Возможности не ограничиваются поиском литерального текста (например, конкретного слова или числа); вы можете провести поиск строк с разной сематикой, но похожим синтаксисом - например, всех тегов HTML в файле.

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

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

Квадратные скобки

Квадратные скобки ( [ ] ) имеют особый смысл в контроле регулярных выражений - они означают "любой символ из перечисленных в скобках". В отличие от регулярного выражения word, которое совпадает во всех строках содержащей литеральный текст word, выражение [word] совпадает в любой строке, содержащей символ w, o, r или d. Квадратные скобки играют важную роль при работе с регулярными выражениями, поскольку в процессе поиска часто возникает задача поиска символов из заданного интервала. Ниже перечислены некоторые часто используемые интервалы:

  • [0-9] - совпадает с любой десятичной цифрой от 0 до 9;
  • [a-z] - совпадает с любым символом нижнего регистра от a до z;
  • [A-Z] - совпадает с любым символом верхнего регистра от A до Z;
  • [a-Z] - совпадает с любым символом нижнего или верхнего регистра от a до Z;
  • Перечисленные интервалы всего демонстрируют общий принцип. Например, вы можете воспользоваться интервалом [0-3] для обозначения любого символа от 0 до 3 или интервалом [a-d] для обозначения любого символя нижнего регистра от a до d.

    Интервалы определяются произвольно.

    Квантификаторы

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

  • S+ означает один или несколько символов S, стоящих подряд;
  • S* означает ноль и более символов S, стоящих подряд;
  • S? означает ноль или один символ S;
  • S{2} означает два символа S, стоящих подряд;
  • S{2,3} означает от двух до трёх символов S, стоящих подряд;
  • S{2,} означает два и более символов S, стоящих подряд;
  • Прочие служебные символы

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

  • Конструкция [^a-zA-Z] совпадает с любым символом, не входящим в указанные интервалы (a-z и A-Z).
  • Служебный символ . (точка) означает любой символ. Например, выражение S.S совпадает с символом S, за которым следует произвольный символ, после чего опять следует S.
  • Объединение служебных символов приводит к появлению более сложных выражений. Рассмотрим несколько примеров:
  • ^.{2}$ - любая строка, содержащая два символа.
  • <b>(.*)</b> - произвольная последовательность символов, заключённых между lt;b> и lt;/b>.
  • p(hp*) - символ p, за которым следует ноль и более экземпляров последовательности hp (например, php).  

    Иногда требуется найти служебные символы в строках вместо того, чтобы использовать их в описанном специальном контексте. Для этого служебные символя экранируются обратной чертой (\). Например. Например, для поиска символя $ надо использовать выражение \$.

    Стандартные интервальные выражения (символьные классы)

    Для удобства программирования в стиле POSIX были определены некоторые стандартные интервальные выражения, также называемыми символьными классами(character classes). Символьный класс определяет один символ из заданного интервала - например, букву алфавита или цифру.
  • [[:alpha:]] - алфавитный символ (aA-zZ);
  • [[:digit:]] - цифра (0-9);
  • [[:alnum:]] - алфавитный символ (aA-zZ) или цифра (0-9).
  • [[:space:]] - пропуски (символы новой строки, табуляции и т.д.)

    Источник:
    www.php-mysql.h1.ru

    главная > статьи >

    Реклама