русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Нежадное» повторение


Дата добавления: 2015-07-09; просмотров: 531; Нарушение авторских прав


 

Символы повторения, перечисленные в табл. 11.3, соответствуют максимально возможному количеству повторений, при котором обеспечивается поиск после_ дующих частей регулярного выражения. Мы говорим, что это – «жадное» повто_ рение. Помимо него в JavaScript 1.5 и более поздних версиях (это одна из воз_ можностей Perl 5, не реализованная в JavaScript 1.2) поддерживается повторе_ ние, выполняемое «нежадным» способом. Достаточно указать после символа (или символов) повторения вопросительный знак: ??, +?, *? или даже {1,5}?. На_ пример, регулярное выражение /a+/ соответствует одному или более экземпля_ рам буквы a. Примененное к строке "aaa", оно соответствует всем трем буквам. При этом выражение /a+?/ соответствует одному или более экземплярам буквы a и выбирает наименее возможное число символов. Примененный к той же строке, этот шаблон соответствует только первой букве a.

 

«Нежадное» повторение не всегда дает ожидаемый результат. Рассмотрим шаб_ лон /a*b/, соответствующий нулю или более символов a, за которыми следует сим_ вол b. Применительно к строке "aaab", ему соответствует вся строка. Теперь про_ верим «нежадную» версию /a*?b/. Она должна соответствовать символу b, перед которым следует наименьшее возможное количество букв a. В случае применения к той же строке "aaab" можно ожидать соответствия лишь последнего символа b. Однако на самом деле этому шаблону соответствует и вся строка, так же как и в случае «жадной» версии. Дело в том, что поиск по шаблону регулярного выра_ жения выполняется путем нахождения первой позиции в строке, начиная с кото_ рой соответствие становится возможным. «Нежадная» версия шаблона находит соответствие с первым символом строки, и именно это соответствие является окончательным, а соответствие последующих символов даже не рассматривается.

 



<== предыдущая лекция | следующая лекция ==>
Символ Значение | Альтернативы, группировка и ссылки


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.048 сек.