3.6. Позитивное и негативное заглядывание вперед

3.6. Позитивное и негативное заглядывание вперед

Понятно, что регулярное выражение сопоставляется со строкой линейно (осуществляя при необходимости возвраты). Поэтому существует понятие «текущего положения» в строке, это аналог указателя файла или курсора.

Термин «заглядывание» означает попытку сопоставить часть строки, находящуюся дальше текущего положения. Это утверждение нулевой длины, поскольку даже если соответствие будет найдено, никакого продвижения по строке не произойдет (то есть текущее положение не изменится).

В следующем примере строка "New world" будет сопоставлена, если за ней следует одна из строк "Symphony" или "Dictionary". Однако третье слово не будет частью соответствия.

s1 = "New World Dictionary"

s2 = "New World Symphony"

s3 = "New World Order"

reg = /New World(?= Dictionary | Symphony)/

m1 = reg.match(s1)

m.to_a[0]          # "New World"

m2 = reg.match(s2)

m.to_a[0]          # "New World"

m3 = reg.match(s3) # nil

Вот пример негативного заглядывания:

reg2 = /New World(?! Symphony)/

m1 = reg.match(s1)

m.to_a[0]          # "New World"

m2 = reg.match(s2)

m.to_a[0]          # nil

m3 = reg.match(s3) # "New World"

В данном случае строка "New world" подходит, только если за ней не следует строка "Symphony".

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



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

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

Переходы назад – вперед в браузере

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

Переходы назад – вперед в браузере В браузере для перехода на предыдущую или следующую страницу совсем не обязательно щелкать по соответствующим кнопкам на панели инструментов программы. Можно просто зажать Shift и покрутить колесико мыши вперед или


Вперед, к новому hover

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

Вперед, к новому hover Ранее я упоминал, что такой подход повлиял на то, как я думаю о подготовке графики для сайтов. Мы можем пользоваться свойством opacity, чтобы управлять тем, как графика выглядит в обычном состоянии, смешивая ее с фоном – и затем применять другие


Кнопки Вперед и Назад

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

Кнопки Вперед и Назад Чтобы заблокировать кнопки Вперед и Назад в Internet Explorer, создайте параметр типа DWORD ·NoNavButtons· со значением 1 в разделе HKCUSoftwarePoliciesMicrosoftInternet


Глава 6. Мощный рывок вперед. Развитие профессиональных навыков

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

Глава 6. Мощный рывок вперед. Развитие профессиональных навыков Далее мы приведем ряд правил, которые позволят существенно повысить свой профессиональный уровень. Есть только одна сложность – эти правила необходимо ВНЕДРЯТЬ в свою практику, а не просто знать. Внедрять –


Бери деньги, и вперед!

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

Бери деньги, и вперед! К множеству странных и удивительных вещей, которые можно делать с помощью элементов управления ActiveX, относятся и подтверждение покупок по кредитным карточкам через модем и прямое подключение к Internet. Если вы разрабатываете пользовательскую систему


НОВОСТИ: E3.12 — вперед в прошлое

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

НОВОСТИ: E3.12 — вперед в прошлое Автор: Тимофей БахваловОбойдемся без долгих преамбул. Что такое Electronic Entertainment Expo (E3), знает, наверное, любой геймер. Посему сразу перейдем к новостям с самой представительной игровой выставки в мире, которая состоялась уже в 12-й раз и собрала в


Перелистывание страниц вперед/назад

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

Перелистывание страниц вперед/назад Обратите внимание на стрелочки в строке адреса (рис. 1.10) — они активируются после того, как вы загрузите несколько страниц в одной вкладке. Это еще один способ перехода на другую страницу. Нетрудно догадаться, что щелчок по левой


Американский Android вырвался вперёд Михаил Карпов

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

Американский Android вырвался вперёд Михаил Карпов Опубликовано 12 мая 2010 года В течение некоторого времени Apple со своим iPhone занимала второе место на американском рынке смартфонов (выше неё — только RIM с телефонами Blackberry, фактически, американским


Вперед.Будущее криптографии Дороти Деннинг [35]

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

Вперед.Будущее криптографии Дороти Деннинг[35] Для обозначения неминуемого наступления Славного Нового Мира, когда правительства в том виде, в каком они сейчас существуют, рассыплются, исчезнут и будут заменены виртуальными сообществами, свободными беспрепятственно


(DZ) Давид Ян: «Я думаю, что люди, которые толкают науку и бизнес вперёд, в определённой степени безумны» Компьютерра

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

(DZ) Давид Ян: «Я думаю, что люди, которые толкают науку и бизнес вперёд, в определённой степени безумны» Компьютерра Опубликовано 13 августа 2013 Дорогие друзья, данным материалом мы хотим открыть на «Компьютерре» серию бесед Дмитрия Завалишина


Дмитрий Шабанов: Вперёд, к эпигенетическому будущему! Дмитрий Шабанов

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

Дмитрий Шабанов: Вперёд, к эпигенетическому будущему! Дмитрий Шабанов Опубликовано 29 ноября 2012 года В прошлой колонке я похвастался, что в конференции на харьковском биофаке, к организации которой я имел отношение, принимал участие Александр


Время, вперёд! Умные часы как буревестник новой компьютерной революции Евгений Золотов

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

Время, вперёд! Умные часы как буревестник новой компьютерной революции Евгений Золотов Опубликовано 25 марта 2013 Наручные часы — один из древнейших гаджетов. Они сопровождают человека аж с XVII века, а их история полна удивительных поворотов, которые и захочешь — не


2. Негативное влияние компьютера: как его уменьшить

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

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