regulyarnyie-vyirazheniya-osnovyi (852744), страница 24
Текст из файла (страница 24)
I. См. также POS/X.Восьмеричная запись символов (octal characters)Для представления символов в реrулярных выражениях можно использовать восьмеричную нотацию. В этом случае символ записывается в виде \ххх, где х - этоцифра в диапазоне 1- 7; возможно использование одной или двух позиций. Например,\3 51 представляет символ е - латинскую строчную букву е со знаком акута.Группа (group)Группа - это объединение атомарных реrулярных выражений, заключенных в парукруглых скобок ( и ) .
В некоторых приложениях, таких как grep или sed (без опции -Е), каждой из этих скобок должна предшествовать обратная косая черта: \) или\(.Группы бывают захватывающие (с запоминанием) и незахватывающие (без запоминания). Содержимое захватывающей группы временно сохраняется в памяти и впоследствии может быть использовано повторно. Содержимое незахватывающей группыне сохраняется, что исключает возможность его повторного использования. В случаеатомарных групп поиск с возвратом не выполняется. См. также атомарная группа.Жадный поиск (greedy match)При жадном поиске первоначально захватывается как можно большая часть строки,а затем последовательно выполняются попытки возврата на один символ для обнаружения совпадения.
См. поиск с возвратоо, ленивый поиск, сверхжадный поиск.Захватывающая rруппа (capturing group)См. группа.Инверсия (negation)Изменяет условия соответствия регулярному выражению на противоположные.Например, реrулярному выражению [ л 2 - 7 ] , в котором перечисление символов класса начинается с символа "циркумфлекс" ( л ), соответствует любая одиночная цифра,кроме 2, 3, 4, 5, 6 и 7, т.е. любая из цифр О, 1, 8, 9.Катастрофический поиск с возвратом (catastrophic backtracking)См.
поиск с возвратоо.Квантификатор (quantifier)Определяет допустимое количество повторений реrулярного выражения в условии поиска. В одной из форм записи квантификатор представляется заключеннымив пару фиrурных скобок одним или двумя целыми числами, разделенными запятой.Например, запись { 3} означает, что выражение может встретиться ровно три раза(при работе со старыми инструментальными средствами, в которых используютсябазовые реrулярные выражения, фигурные скобки необходимо экранировать символами обратной косой черты: \ { 3 \} ). Другими квантификаторами являются ? (соответствует повторению предыдущего выражения нуль или один раз), + (соответствуетповторению предыдущего выражения один или более раз) и* (соответствует повторению предыдущего выражения нуль или более раз).
Другие названия квантификатора:ограничение, модификатор. Обычные квантификаторы жадные. Существуют также138Глоссарийленивые (например, { 3} ?) и сверхжадные (например, { 3} +).См. также базовые регулярные выражения, жадный поиск, ленивый поиск, сверхжадный поиск.Кодовая точка (code point)См. Unicode.Компонуемость (composability)"Язык схемы, или язык описания структуры документа (а по существу - язык программирования), предоставляет ряд атомарных объектов и ряд методов их компоновки.Методы компоновки позволяют объединять атомарные объекты в составные, которые,в свою очередь, могут компоноваться в другие составные объекты. Компонуемостьязыка - это возможность единообразного применения методов компоновки к различным объектам языка, как атомарным, так и составным...
Компонуемость характеризует степень легкости изучения и использования языка. Кроме того, повышение компонуемости языка обычно приводит к улучшению отношения "сложность/мощность":при одинаковой степени сложности двух языков тот из них, который обладает болеевысокой компонуемостью, одновременно обладает и более высокой мощностью". Джеймс Кларк, "The Design of RELAX NG," http://www. thaiopensource.com/relaxng/ design.html#section:5.Ленивый поиск (lazy match)При ленивом поиске попытки найти совпадение осуществляются путем захвата проверяемой строки по одному символу за один раз без использования механизма возврата.
См. также поиск с возвратам, жадный поиск, сверхжадный поиск.Литерал (literal)См. строковый литерал.Метасимвол(metacharacter)Символ, имеющий специальное значение в регулярном выражении. К метасимволамотносятся следующие символы (здесь запятые являются разделителями): . , \, \ 1, *,+, ?, �, $, [, ] , (, ) , {, } . Другое название метасимволов - атомы.Модификатор (modifier)Символ, который помещается перед шаблоном поиска для изменения правил сопоставления. Например, модификатор i означает игнорирование регистра.
Другое название модификаторов - флаги.Незахватывающая rруппа (non-capturing group)Группа, заключенная в круглые скобки, содержимое которой не запоминается для последующего использования. Соответствующий синтаксис: (?:pattern). См. такжегруппа.Обратная ссылка (backreference)Позволяет ссылаться на текст, сохраненный предыдущим регулярным выражением вкруглых скобках: обратные ссылки записываются в виде нумерованных переменных\1, \2 и т.д.Оrраничение(Ьоund)См. квантифuкаторГnоссарий139Оrраничение количества вхождений (occurrence constraint)См.
квантификатор.Опережающая проверка (lookahead)Опережающая проверка бывает двух видов: положительная и отрицательная. Дляположительной опережающей проверки используется синтаксис (?= regex), гдеregex - произвольное регулярное выражение. Это условие истинно, если в текущейпозиции находится текст, совпадающий с regex. Соответственно, для регулярноговыражения regexl (?= regex2) совпадение считается достигнутым только в томслучае, если вслед за найденным вхождением regexl находится вхождение regex2.Для отрицательной опережающей проверки используется синтаксис (? ! regex).Это условие истинно, если в текущей позиции не находится текст, совпадающийс regex.
Соответственно, для регулярного выражения regexl (? ! regex2) совпадение считается достигнутым только в том случае, если вслед за найденным вхождением regexl не обнаружено вхождения regex2.Опции (options)Позволяют изменять правила сопоставления. Например, опция (? i) включает режимнечувствительности к регистру. Опции аналогичны модификаторам, но используютдругой синтаксис. См. также модификатор.Отрицательная опережающая проверка (negative lookahead)См. опереж:ающая проверка.Отрицательная ретроспективная проверка (negative lookЬehind)См.
ретроспективная проверка.Поиск с возвратом (backtracking)Попытки нахождения совпадения посредством последовательного возврата на одинсимвол. Используется только жадными шаблонами (в отличие от ленивых и сверхжадных шаблонов). Поиск с возвратом, в процессе которого количество попыток, предпринимаемых процессором регулярных выражений для обнаружения совпадений, исчисляется тысячами, что сопряжено с потреблением значительных вычислительныхресурсов, называют катастрофическим. Одним из способов, позволяющих избежатьперехода поиска в катастрофический режим, является использование атомарных группировок.
См. также атомарная группировка, жадный поиск, ленивый поиск, сверхжадный поиск.Поиск соответствия (matching)Регулярное выражение может осуществлять поиск соответствия заданному шаблонув тексте, а затем, в зависимости от приложения, инициировать получение соответствующего результата.Положительная опережающая проверка (positive lookahead)См. опереж:ающая проверка.Положительная ретроспективная проверка (positive lookbehind)См. ретроспективная проверка.Группа проверки (lookaround)140ГлоссарийСм.
опере:жающая проверка, ретроспективная проверка.Пространство хранения (hold space)Используется редактором sed для сохранения одной или нескольких строк с цельюих дальнейшего использования. Другое название - буферное хранWiище. См. такжепространство шаблона.Пространство шаблона (pattern space)Обычно программа sed обрабатывает по одной входной строке за один раз. Текущаявходная строка сохраняется в пространстве шаблона. Другое его название - рабочийбуфер. См.
также пространство хранения.Рабочий буфер (work buffer)См. пространство шаблона.Расширенные регулярные выражения (extended regular expressions, ERE)Расширенные регулярные выражения отличаются от базовых наличием дополнительной функциональности, такой как альтернативные шаблоны ( 1 ) или квантификаторынаподобие ? и +, которые работают с egrep (extended grep - расширенная утилитаgrep).
Дополнительные возможности описаны в стандарте IEEE POSIX 1003.2-1992.Опция - Е утилиты grep означает, что вы хотите использовать не базовые регулярныевыражения, а расширенные. См. также альтернативные шаблоны, базовые регулярные выра:жения, grep.Регулярные выражения (regular expressionы)Особым образом закодированные строки символов, которые могут использоватьсяприложениями и утилитами для поиска других строк или наборов строк. Регулярныевыражения были впервые описаны математиком Стивеном Клини (1909-1994) в статье, посвященной формальной теории языков, которая была опубликована в его книгеMetamathematics в 1952 году. Одной из первых компьютерных программ, в которыхначали использоваться регулярные выражения, был текстовый редактор QED, разработанный Кеном Томпсоном и др.