Книга: Программирование на языке Ruby
3.13.5. Еще о кванторах
3.13.5. Еще о кванторах
Мы уже встречались с атомарными подвыражениями в «классической» библиотеке регулярных выражений в Ruby. Они выделяются с помощью нотации (?>...
) и являются «собственническими» в том смысле, что жадные и не допускают возврата внутрь подвыражения.
Oniguruma предлагает еще один способ выразить собственническую природу — с помощью квантора +
. Он отличается от метасимвола +
в смысле «один или более» и даже может использоваться с ним совместно. (На самом деле это «вторичный» квантор, как и ?
, который можно употреблять в таких контекстах, как ??
, +?
и *?
.)
Применение +
к повторяющемуся образцу эквивалентно заключению его в скобки как независимого подвыражения, например:
r1 = /x*+/ # То же, что /(?>x*)/
r2 = /x++/ # То же, что /(?>x+)/
r3 = /x?+/ # То же, что /(?>x?)/
По техническим причинам Ruby не считает конструкцию {n,m}+
собственнической.
Понятно, что новый квантор — не более чем удобное обозначение, никакой новой функциональности он не несет.
- 1.1.4. Еще немного терминов
- HR-брендинг: Работа с поколением Y, новые инструменты для коммуникации, развитие корпоративной культуры и еще 9 эффектив...
- Как выбрать сетевое размещение?
- Размещение публикаций в сетевых СМИ
- Стоимость размещения рекламы
- Вещественные типы
- Еще о создании пользовательских меню
- Перемещение по диалоговым окнам
- Настройка оповещений
- Использование оповещений
- Освещение
- С чего начать, если у вас еще нет рекламы?