regulyarnyie-vyirazheniya-osnovyi (852744), страница 25
Текст из файла (страница 25)
для компьютера GE-635, работавшего под управлением операционной системы Geпeral Electric Time Sharing System (GE-TSS). В начале1970-х годов регулярные выражения были включены в операционную систему UNIX,развернуrую в АТ&Т Bell Labs.Ретроспективная проверка (lookbehind)Ретроспективная проверка бывает двух видов: положительная и отрицательная. Дляположительной ретроспективной проверки используется синтаксис ( ?<= regex).Это условие истинно, если перед текущей позицией находится текст, совпадающийс regex. Соответственно, для регулярного выражения regexl ( ?<= regex2)совпадение считается достигнутым только в том случае, если вхождению regexlнепосредственно предшествует вхождение regex2. В то же время, в отличие отопережающей проверки, регулярное выражение regex, исходя из соображений производительности, не может быть произвольным и должно соответствовать определенному количеству символов.
Следовательно, regex не может содержать квантификаторы переменной длины и альтернативы, которым соответствует текст разной длины.Для отрицательной опережающей проверки используется синтаксис ( ?< ! regex).Это условие истинно, если перед текущей позицией не находится текст, совпадающийГлоссарий141с regex. Соответственно, для регулярного выражения regexl (? ! < regex2) совпадение считается достигнутым только в том случае, если найденному вхождениюregexl не предшествует непосредственно вхождение regex2.Сверхжадный поиск (possessive match)При сверхжадном поиске делается попытка найти совпадение путем захвата сразувсей строки.
Поиск с возвратом не выполняется. См. также поиск с возвратам, жадный поиск, ленивый поиск.Символьный класс (character class)Набор символов, заключенный в квадратные скобки. Например, [а-ЬА-80-9] - этокласс символов, представляющий произвольную одиночную букву нижнего или верхнего регистра или цифру из таблицы ASCII.Скобочное выражение (bracketed expression)Регулярное выражение, заключенное в квадратные скобки. Например, выражение[ а - f] представляет диапазон букв нижнего регистра от а до f.
См. также сzн,вольный класс.Строковый литерал (string literal)Строка символов, интерпретируемая буквально. Пример: строковый литерал It is anancyent Marinere в отличие от чего-нибудь наподобие [ Ii] t [ ] is [ ] . *nere.Условия с нулевой длиной совпадения (zero-width assertions)Метасимволы, которым соответствуют не определенные литеральные символы (илиих последовательности), а позиции между символами, отвечающие определенным условиям (чем и объясняется название). В качестве примера можно привести метасимволы л and $, совпадающие, соответственно, с началом и концом строки.Флаг (flag)См. модификатор.Чередование (alternation)Регулярное выражение, представляющее собой список регулярных выражений (альтернатив), разделенных символами вертикальной черты ( 1 ), имеющими смысл логического "ИЛИ".
Иными словами, в таких регулярных выражениях используетсяпервый (в порядке записи слева направо) совпавший шаблон, после чего оставшиеся шаблоны пропускаются. В некоторых приложениях, таких как grep или sed, вкоторых используются базовые регулярные выражения (BRE), символу I долженпредшествовать символ обратной косой черты (\ 1 ). См. также базовые регулярныевыражения.Шестнадцатеричное представление (hexadecimal)Число, представленное в шестнадцатеричной системе исчисления, в которой используются цифры в диапазоне 0-9 и буквы в диапазоне A-F (или a-f).
Например, десятичное число 15 представляется в шестнадцатеричной системе как F, а число 16 как 10.Экранирование символа (character escape)142ГлоссарийПредварение символа обратной косой чертой. Примеры: \ t (горизонтальная табуляция), \ v(вертикальная табуляция), \ f (прогон страницы).Элемент (piece)В терминологии POSIX. I - часть регулярного выражения, которая может обьединяться с другими частями для образования ветвей. См.
также POSIX.Якорь (anchor)Позиционная привязка. Указывает определенную позицию в строке. Например, символу "крышка"( л ) соответствует начало строки, символу доллара($) - конец строки.Глоссарий143Предметный указатеnьАack, 79;85;97;99;100Adobe Air,65ASCII,75;130AsciiDoc, 113AWK,15сCygwin, 13;42;53;86Еed, 15; 53egrep, 53GGit,41grep,15;46;53;57;102;115NNotepad++, 23;26Oniguruma,118Oxygen, 23;26орPCRE, 23;47;53;117pcregrep, 47;53;117Perl, 39;42;51;58;108;117командный файл, 111обработка римских цифр, 110опережающая проверка, 97;99ретроспективная проверка, 99POSlX, 71;129Python, 118QTextMate,23;25тuUnicode,75;79пробельные символы, 124Unix, 15vi, 15;52vim, 15;78; 85XML Schema, 26vхАББектрекинг, 88гГруппаатомарная, 64;65захватывающая, 19; 60именованная, 62незахватывающая, 64Группа проверки, 95Диапазон, 30д3Захватывающая группа, 19;60Звездочка,88иQED, 11;121;135RE2,118RegexBuddy, 13Regex Нею, 76; 85RegexPal, 13; 16;25;76RegExr,27;41;43;55;69;95Reggy, 70;73;87Rubular,67; 74Ruby, 118Катастрофический поиск свозвратом, 64Квантификатор.
20;87жадный, 37;88ленивый, 88;91сверхжадный,88;92Кодовая точка, 16; 76Компонуемость, 25sed,15;38;41;50;60;116замена текста, 103командный файл, 107обработка римских цифр. 104разметка тегами HTML, 106Литерал, 29sОбратная ссылка, 19;60Опережающая проверкав Perl, 97;99отрицательная, 98положительная, 95пllодшаблон, 59Поиск с возвратом,88Пробельный символ, 34;124в Unicode, 124Атомарная группа, 64; 65Именованная группа,62Инверсия,31RноНезахватывающая группа, 64клмМетасимвол,18;33;122Модификатор, 56;58;130рРазметка тегами HTML, 38; 51в Per\,108с помощью sed,103Регулярное выражение, 15Ретроспективная проверкав Per\, 99отрицательная, 99положительная, 99Римские цифры,110сСимвольная маска,18Символь11ое сокращение,18;33;123Символьный класс, 18; 33; 67в POSIX,71; 129инвертированный, 69Символьный набор,70Скобочное выражение, 67Словарный символ, 32Сокращение, 67Строковый литерал, 18; 29уУправляющий символ, 83;125Условие с нулевой длинойсовпадения,43;95цЦе11евой текст, 16Циркумфлекс, 43;69Чередование, 55Якорь, 43чя.