Мы — долго запрягаем, быстро ездим, и сильно тормозим.

RFC
Программирование
FreeBSD
man
EXIM
  4.62
  часть 1
  часть 2
  часть 3
  часть 4
  часть 5
  часть 6
  часть 7
  часть 8
  часть 9
  часть 10
  часть 11
  часть 12
  часть 13
  часть 14
  часть 15
  часть 16
  часть 17
  часть 18
  часть 19
  часть 20
  часть 21
  часть 22
  часть 23
  часть 24
  часть 25
  часть 26
  часть 27
  часть 28
  часть 29
  часть 30
  часть 31
  часть 32
  часть 33
  часть 34
  часть 35
  часть 36
  часть 37
  часть 38
  часть 39
  часть 40
  часть 41
  часть 42
  часть 43
  часть 44
  часть 45
  часть 46
  часть 47
  часть 48
  часть 49
  часть 50
  часть 51
  часть 52
  часть 53
  filter facility
  4.70


www.lissyara.su —> документация —> EXIM —> 4.62 —> часть 8

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


    Exim поддерживает использование регулярных выражений во многих своих опциях. Используется библиотека регулярных выражений PCRE; это обеспечивает совместимость регулярных выражений с perl5. Синтаксис и семантика регулярных выражений обсуждаются во многих книгах по perl, и также в Jeffrey Friedl’s Mastering Regular Expressions, изданной  O’Reilly (смотрите http://www.oreilly.com/catalog/regex2/).
   Документация о синтаксисе и семантике регулярных выражений включена в текстовом формате в файле
doc/pcrepattern.txt дистрибутива exim, а также в HTML тарболле (архив tar`a - прим. lissyara) документации exim. Там подробно описываются особенности поддержки регулярных выражений PCRE, таким образом нет необходимости включать дальнейшее описание тут. Функции PCRE вызываются из 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 был доменом высшего уровня. Обратный слэш перед $ необходим, поскольку раскрытие строки также интерпретирует символ доллара.

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

   Программа называемая pcretest является частью дистрибутива PCRE и собирается с PCRE в процессе сборки exim. После сборки exim`a бинарник может быть найден в директории где собирался exim (если она не проинсталлилась где-то автоматически). Существует документация для различных опций в doc/pcretest.txt, но для одиночного теста она не требуется. Это - вывод образца запуска pcretest:
  re> /^([@]+)@.+\.(ac|edu)\.(?!kr)[a-z]{2}$/
data> x@y.ac.uk
 0: x@y.ac.uk
 1: x
 2: ac
data> x@y.ac.kr
No match
data> x@y.edu.com
No match
data> x@y.edu.co
 0: x@y.edu.co
 1: x
 2: edu

Ввод пользователя показан жирным шрифтом. После подсказки re>, ожидается регулярное выражение внутри разделителей. Если оно компилится без ошибок, даётся подсказка data> напротив строки соответствующей выражению. Пустая линия приводит к чтению нового регулярного выражения. Если было успешной совпадение, показываются зафиксированные значения подстроки (то есть, что было бы в переменных 0 $, 1 $, 2 $, и т. д.). Вышеупомянутый пример проверяет на адрес электронной почты, домен которого заканчивается или ac или edu, сопровождаемым двухсимвольным вышестоящим доменом, который не kr. Локальная часть находится в $1 и ac или edu в $2.


=============
translated by lissyara



Ссылка на обсуждение: http://forum.lissyara.su/viewforum.php?f=20.



Хостинг HOST-FOOD

2014-07-27, lissyara
gmirror

Удалённое создание софтверного зеркала средствами gmirror, на диске разбитом с использованием gpart. Использование меток дисков для монтирования разделов.
2013-08-20, zentarim
Scan+Print server FreeBSD 9

Настройка сервера печати и сервера сканирования под управлением операционной системы FreebSD 9 для МФУ Canon PIXMA MP540
2011-11-20, BlackCat
Разъём на WiFi-карту

Делаем съёмной несъёмную антену на WiFi-карте путём установки ВЧ-разъёма
2011-09-14, manefesto
Настройка git+gitosis

Настройка системы контроля версия исходного кода в связке git+gitosis+ssh
2011-08-14, zentarim
Wi-FI роутер + DHCP + DNS

Настройка Wi-Fi роутера на Freebsd 8 + DNS сервер + DHCP сервер: чтобы Wi-Fi клиенты были в одной подсети с проводными, проводные и беспроводные клиенты получали адреса автоматически по DHCP, кэширующ
2011-06-15, -ZG-
Охранная система на FreeBSD+LPT

В этой статье описана попытка реализации простой охранной системы на базе FreeBSD с подключением к ней охранных устройтсв на LPT порт и видеорегистрацией.
2011-03-13, terminus
ng_nat

Описание работы ng_nat, практическое использование, достоинства и недостатки в сравнении с ipfw nat
2011-02-20, Капитан
Nagios+Digitemp

Статья описывает создание системы оповещения о превышении температуры в специальных помещениях на основе Nagios с использованием программы Digitemp.
2011-02-17, Le1
Zyxel Configuration

Скрипт для массового изменения конфига свичей Zyxel. Берет из файла iplist список ip-шек, заходит последовательно на каждый и выполняет комманды из файла commands, записывая происходящее в лог файл.
подписка

    вверх      
Статистика сайта
Сейчас на сайте находится: 34 чел.
За последние 30 мин было: 66 человек
За сегодня было
2361 показов,
578 уникальных IP
 

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

© lissyara 2006-10-24 08:47 MSK

Время генерации страницы 0.0415 секунд
Из них PHP: 18%; SQL: 82%; Число SQL-запросов: 65 шт.
Исходный размер: 93019; Сжатая: 15309