Шаблоны поиска

Содержание материала

Звезда не активнаЗвезда не активнаЗвезда не активнаЗвезда не активнаЗвезда не активна
 

Правила подстановки сопоставляют исходный адрес с шаблоном, и если обнаружено соответствие, адрес переписывается в новом формате по правилам преобразования.

Адрес может обрабатываться правилом подстановки несколько раз, поскольку после переписывания адрес снова сравнивается с шаблоном. Если соответствие вновь обнаружено, адрес переписывается повторно. Цикл сопоставления с шаблоном и переписывания продолжается, пока адрес не перестанет соответствовать шаблону.

Шаблон определяется посредством макроопределений, классов, литералов и специальных метасимволов. Макроопределения, классы и литералы используются в качестве значений, с которыми сравниваются исходные данные, а метасимволы задают правила сравнения с шаблоном. В табл. 10.3 описаны метасимволы, используемые для поиска по шаблонам. Таблица 10.3. Метасимволы шаблонов

Символ Значение
$@ Нулевое количество лексем
$* Нуль или более лексем
$+ Одна или более лексем
$- Ровно одна лексема
$=X Любая лексема из класса х
$~x Любая лексема не из класса х
$x Все лексемы из макроопределения х
$%X Любая лексема из карты NIS, обозначенной макроопределением х1
$!x Любая лексема не из карты NIS, обозначенной макроопределением х
$%y Любая лексема из карты NIS hosts.byname

Каждый метасимвол предписывает поиск определенного числа лексем. Лексема - это строка символов в адресе электронной почты, ограниченная оператором. Операторами являются символы, указанные в параметре OperatorChars. Операторы также считаются лексемами при разборе адреса. Следующий адрес электронной почты:

Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра.

содержит семь лексем: becky, @, rodent, ., wrotethebook,. , а также com. Этот адрес соответствует шаблону поиска:

$-§$+

Адрес соответствует шаблону, потому что:

  • в нем ровно одна лексема перед оператором то есть выполняется требование метасимвола $-;
  • в нем присутствует оператор соответствующий литералу шаблона
  • после оператора @ в адресе присутствует одна или более лексем, то есть выполняется требование метасимвола $+.

Многие адреса, такие как Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра. и Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра., соответствуют этому шаблону, однако далеко не все. Так, адрес rebecca.hunt@wrotet hebook.com шаблону не соответствует, поскольку оператору @ предшествуют три лексемы: rebecca,. , а также hunt . Следовательно, не выполняется требование наличия ровно одной лексемы, связанное с метасимволом $-. Мета символы, макроопределения и литералы позволяют конструировать шабло ны для поиска адресов электронной почты любого типа.

Если адрес соответствует шаблону, подстроки адреса, найденные метасимволами , сохраняютс я в неопределенных лексемах (indefinite tokens). Найденные строки называются неопределенными лексемами, поскольку могут содержать по нескольку значений лексем. Неопределенные лексемы нумеруются последовательно в соответствии с положением в шаблоне метасимволов, которому они соответствуют. Иначе говоря, неопределенная лексема, полученная по соответствию первого метасимвола, называется $1; соответствие для второго символа называется $2; для третьего - $3 и т. д. Сопоставление адреса Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра. с шаблоном $-@$+ привело к созданию двух неопределенных лексем. Первая из них обозначается как $1 и содержит одну лексему, becky, соответствующую символу $-. Вторая неопределенная лексема носит имя $2 и содержит пять лексем - rodent, ., wrotethebook, ., а также com, - соответствующих символу $+. На неопределенные лексемы, созданные при поиске по шаблону, можно ссылаться по именам ($1, $2 и т. д.) при переписывании адреса.

Некоторые из символов, описанных в табл. 10.3, используются только в особых случаях. Символ $@ используется обычно отдельно для поиска пустого адреса. Символы сравнений с картами NIS могут использоваться только в операционной системе Sun с программой sendmail из дистрибутива системы. В следующем разделе мы увидим, что системы, использующие стандартную версию sendmail, могут работать с картами NIS, но только в части преобразований, а не поиска по шаблонам.


Обмениваться, хранить, передавать Ваши файлы стало просто как никогда.
yandex-disk
Читать подробнее: для чего Yandex-Диск проекту Mini-Server. Практика установки, настройки и использования сетевого хранилища на Ubuntu server LTS 12.04 в статье Резервное копирование сервера Ubuntu на Яндекс Диск.

>> Ubuntu 12.04 + Nginx Скачать сервер
>> Fedora 15 Скачать сервер
>> Простой Debian 6.0.6 Скачать сервер
>> CentOS 6.0 и
+ (5.6) другой
Скачать сервер
>> OpenSUSE 11.4
MAX
Скачать сервер

Вход на сайт

ВНИМАНИЕ!

Регистрация на сайте только по согласованию с администратором ресурса. Обращаться через форму обратной связи.