3.12. Внутренние подвыражения

3.12. Внутренние подвыражения

Для указания подвыражений применяется нотация ?>:

re = /(?>abc)(?>def)/   # То же, что /abcdef/

re.match("abcdef").to_a # ["abcdef"]

Отметим, что наличие подвыражения еще не означает группировки. С помощью дополнительных скобок их, конечно, можно превратить в запоминаемые группы.

Еще обратим внимание на то, что эта конструкция собственническая, то есть жадная и при этом не допускает возврата в подвыражение.

str = "abccccdef"

re1 = /(abc*)cdef/

re2 = /(?>abc*)cdef/

re1 =~ str          # 0

re2 =~ str          # nil

re1.match(str).to_a # ["abccccdef", "abccc"]

re2.match(str).to_a # []

В предыдущем примере подвыражение abc* выражения re2 поглощает все вхождения буквы с и (в соответствии с собственническим инстинктом) не отдает их назад, препятствуя возврату.

Данный текст является ознакомительным фрагментом.



Поделитесь на страничке

Похожие главы из других книг:

Внутренние ссылки

Из книги автора

Внутренние ссылки Внутренние ссылки организуют переходы внутри одного HTML-документа. Они применяются, когда на одной странице много текста. Для простоты навигации можно создать ссылки, при щелчке кнопкой мыши на которых пользователь автоматически перейдет к нужной


Внутренние рекламные сети

Из книги автора

Внутренние рекламные сети На некоторых веб-страницах, использующих внутренние системы показа рекламы, вставка объявлений выполняется через iframe (в общем случае — наиболее быстрый способ), иногда через document.write (иногда даже каскадный, когда с помощью одного document.write


Внутренние факторы

Из книги автора

Внутренние факторы В 1994 году увидела свет первая полнотекстовая поисковая система под названием WebCrawler. Произошла революция: ранее информация в Сети структурировалась исключительно в виде каталогов ссылок, сгруппированных по тематическому признаку. Следом на орбиту


Внутренние ссылки

Из книги автора

Внутренние ссылки Изучение списка исходящих ссылок на внешние сайты. Статический вес распределяется между всеми ссылками сайта. Если ссылок на другие ресурсы существенное количество, продвигаемые страницы сайта могут недополучать вес. Необходимо:? просмотреть список


3.1.4. Внутренние границы

Из книги автора

3.1.4. Внутренние границы В Unix действует предположение о том, что программист знает лучше (чем система). Система не остановит пользователя и не потребует какого-либо подтверждения при выполнении опасных действий с данными, таких как ввод команды rm -rf *. С другой стороны, Unix


3.1.4. Внутренние границы

Из книги автора

3.1.4. Внутренние границы В Unix действует предположение о том, что программист знает лучше (чем система). Система не остановит пользователя и не потребует какого-либо подтверждения при выполнении опасных действий с данными, таких как ввод команды rm -rf *. С другой стороны, Unix


3.11. Внутренние модификаторы

Из книги автора

3.11. Внутренние модификаторы Обычно модификаторы (например, i или m) задаются после регулярного выражения. Но что если мы хотим применить модификатор только к части выражения?Существует специальная нотация для включения и выключения модификаторов. Заключенный в круглые


Внутренние исключения

Из книги автора

Внутренние исключения Вы можете догадываться, что вполне возможно генерировать исключения и во время обработки другого исключения. Например, предположим, что вы обрабатываете CarIsDeadException в рамках конкретного блока catch и в процессе обработки пытаетесь записать след стека


Глава 11. Внутренние команды

Из книги автора

Глава 11. Внутренние команды Внутренняя команда -- это команда, которая встроена непосредственно в Bash. Команды делаются встроенными либо из соображений производительности -- встроенные команды исполняются быстрее, чем внешние, которые, как правило, запускаются в дочернем


Внутренние устройства

Из книги автора

Внутренние устройства Наибольшее число моделей устройств видеоввода реализовано в виде плат. Наверняка даже самым «неискушенным» читателям встречались названия такого рода: «плата в стандарте PCI» (Peripheral Component Interconnect – соединение периферийных компонентов). Сейчас самое


Внешние и внутренние факторы

Из книги автора

Внешние и внутренние факторы Все мы хотим, чтобы наше ПО было быстродействующим, надежным, легким в использовании, читаемым, модульным, структурным и т.д. Но эти определения описывают два разных типа качества. Наличие или отсутствие таких качеств, как скорость и простота


Внутренние ТВ-тюнеры

Из книги автора

Внутренние ТВ-тюнеры Практически все современные внутренние телевизионные тюнеры выпускаются в виде PCI-карт, которые устанавливаются в соответствующий слот материнской платы. Эти тюнеры характеризуются богатством разнообразных сервисных функций, серьезно опережая по


Внутренние DVB-тюнеры

Из книги автора

Внутренние DVB-тюнеры Внутренние DVB-тюнеры – это тюнеры, выполненные на плате, подключающейся к компьютеру по шине PCI. Такие тюнеры не имеют своего корпуса, так как находятся внутри корпуса компьютера. Если сравнивать количество моделей внутренних и внешних тюнеров, то


2.1. Внутренние устройства

Из книги автора

2.1. Внутренние устройства Компьютер представляет собой модульную конструкцию, в которую входят внутренние и внешние комплектующие. В данном разделе речь пойдет об основных внутренних


Альберти и внутренние враги

Из книги автора

Альберти и внутренние враги Автор: Киви БердRSA Conference, крупнейший и самый знаменитый в мире форум по информационной безопасности, из года в год набирает популярность. Ни утрата независимости фирмой-организатором RSA Security (в прошлом году ее купила корпорация-гигант EMC,