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)?$`
Для того чтобы использовать символ '~' в обычной маске, удвойте его.
Вам не нужно "привязывать" регулярное выражение (используя символы '^' и '$') в файловых масках - они бут "привязаны" автоматически, а если надо пропустить символы с начала или с конца, используйте ".*"
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. |