Мы — долго запрягаем, быстро ездим, и сильно тормозим.
www.lissyara.su —> документация —> EXIM —> 4.70 —> часть 8

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


    Exim поддерживает использование регулярных выражений во многих своих опциях. Используется библиотека регулярных выражений PCRE; это обеспечивает совместимость регулярных выражений с perl5. Синтаксис и семантика регулярных выражений обсуждаются во многих книгах по perl, и также в Jeffrey Friedl’s Mastering Regular Expressions, изданной  O'Reilly (смотрите http://www.oreilly.com/catalog/regex2/).
   Документация о синтаксисе и семантике регулярных выражений, поддерживаемых PCRE, находится в виде простого текста в файле
doc/pcrepattern.txt из состава дистрибутива Exim'a. В нём подробно рассматриваются все возможности и особенности регулярных выражений, которые поддерживает PCRE, в этом документе эта информация отсутсвует. Функции PCRE, вызываемые из exim'a, вызываемые из exim'a, с использованием опций по-умолчанию (т.е. без установленных опций PCRE), за исключением случая, когда установлена опция PCRE_CASELESS, регистрозависимы.
   В большинстве случаев, когда регулярные выражения требуются в конфигурации exim`a, они должны начинаться с крышки (
^), для того чтобы отличить их от простого текста, или заканчиваться безразличным символом. В этом примере конфигурационных настроек, второй элемент в списке разделённом двоеточиями, - регулярное выражение.
domains = a.b.c : ^\\d{3} : *.y.z : ...

   Удвоение обратного слэша требуется, поскольку раскрытие строки предшествует интерпретации - смотрите раздел 11.1 для подробного рассмотрения этой темы, и способов не удваивать обратные слэши. Регулярное выражение, использующееся в этом примере, в конечном счёте содержит только один обратный слэш. Крышка включена в него, и её нормальный эффект - постановка на якорь выражения в начале строки.
   Однако, есть два случая, когда где крышка не требуется для распознания регулярного выражения: это условие
match в строке раскрытия и условие matches в файле фильтра exim. В этих случаях, уместная строка всегда обрабатывается как регулярное выражение; если выражение не начинается с крышки, то оно не поствлено на якорь и может соответствовать в любом месте строки объекта.
   Во всех случаях, если вы хотите, чтобы регулярное выражение совпадало с концом строки, вы можете использовать метасимвол
$ для указания этого. Например:
domains = ^\\d{3}\\.example

совпадает с доменом 123.example, но также соответствует 123.example.com. Вам нужно использовать:
domains = ^\\d{3}\\.example\$

если вы хотите чтобы example был доменом высшего уровня. Обратный слэш перед $ необходим, поскольку раскрытие строки также интерпретирует символ доллара.

=============
translated by lissyara
verifying by Gerk





 

  Этот информационный блок появился по той простой причине, что многие считают нормальным, брать чужую информацию не уведомляя автора (что не так страшно), и не оставляя линк на оригинал и автора — что более существенно. Я не против распространения информации — только за. Только условие простое — извольте подписывать автора, и оставлять линк на оригинальную страницу в виде прямой, активной, нескриптовой, незакрытой от индексирования, и не запрещенной для следования роботов ссылки.
  Если соизволите поставить автора в известность — то вообще почёт вам и уважение.

© lissyara 2006-10-24 08:47 MSK

Время генерации страницы 0.0319 секунд
Из них PHP: 19%; SQL: 81%; Число SQL-запросов: 56 шт.
Исходный размер: 12981; Сжатая: 4286