Perl-compatible regular expressions

Taurus uses Perl-Compatible Regular Expressions v3.3 library ((c) 1997-2001 University of Cambridge) that is an open-source software. The PCRE library is written by Philip Hazel <ph10@cam.ac.uk>, University Computing Service, New Museums Site, Cambridge CB2 3QG, England, Phone: +44 1223 334714.

Perl-совместимые регулярные выражения (Perl-Compatible Regular Expressions, PCRE) описаны в отдельной главе, которую составил Philip Hazel.

Где использовать регулярные выражения

Регулярные выражения могут использоваться в файловых масках, масках адресов, ответах модемов, конфигурации файл-боксов, то есть везде, где можно использовать обычные маски (хотя ответы модемов не допускают использование обычных масок)

Синтаксис

Чтобы вставить регулярное выражение, используйте символ '~', после которого следует символ-разделитель, определяющий начало и конец регулярного выражения.

например

до~#РегулярноеВыражение#после

где "до" и "после" это опциональный текст, который расценивается как обычная маска (то символ соответствует самому себе, '?' соответсвует любому символу, '*' соответсвует последовательности символов.

"РегулярноеВыражение" - текст регулярного выражения.

'#' - символ-разделитель.

Примеры

Файловая маска

~#cat(aract|erpillar|)\..+#

будет подходить файлам с именами "cat", "cataract", or "caterpillar", с обязательным любым расширением.

иногда это можно заменить на

~#cat(aract|erpillar|)#.*

здесь, после разделителя, текст (".*") трактуется как обычная маска, то есть '.' соответствует точке, а '*' соответствует последовательности символов.

Пример использования регулярных выражений в ответах модемов:

~#^RING(\x20\d)?$#

Это выражение соответствует строке "RING" с необязательной следующей за ней комбинацией из пробела и цифры.

Разделители в строках и разделители регулярного выражения

Из-за того, что пробел (или другой символ) может использоваться как разделитель в строках конфигурации, такой символ не должен встречаться в оригинальном виде. Разделитель в строках конфигурации (пробел) имеет больший приоритет, чем разделитель регулярного выражения (например #).

Чтобы в регулярных выражениях избежать использования разделителя, применяемого в строках конфигурации, используйте шестнадцатеричный код (например, \x20 для пробела) или соответствующий шаблон (например, \s)

Если символ '#' планируется использовать в регулярном выражении, вы можете также прибегнуть к шестнадцатеричному коду, но лучше подобрать другой символ на роль разделителя.

~`^RING(\x20#\d)?$`

Для того чтобы использовать символ '~' в обычной маске, удвойте его.

Привязка в файловых масках

Вам не нужно "привязывать" регулярное выражение (используя символы '^' и '$') в файловых масках - они бут "привязаны" автоматически, а если надо пропустить символы с начала или с конца, используйте ".*"

PCRE Default Options

The settings of PCRE_CASELESS, PCRE_MULTILINE, PCRE_DOTALL, and PCRE_EXTENDED options (described in separate chapter) can be changed from within the pattern by a sequence of Perl option letters enclosed between "(?" and ")", although the following default options are used:

When matching file names and path names - PCRE_CASELESS.

When matching modem responses - PCRE_MULTILINE, because the regular expression is matching against the entire multi-line input data stream coming from a modem.

In all other cases none of PCRE options are set by default.

The CHM file was converted to HTML by chm2web software.