Курс по Raku / Регулярни изрази и граматики / Регулярни изрази / Твърдения за оглед

Оглед напред

Погледът напред проверява какво идва непосредствено след текущата позиция. Записва се в ъглови скоби:

  • <?before …> — успява, ако текстът напред съвпада (положителен поглед напред)
  • <!before …> — успява, ако текстът напред не съвпада (отрицателен поглед напред)

Самото твърдение не съпоставя нито един знак; то само проверява позицията. Например съпоставете число само когато след него следва думата dollars:

say '100 dollars' ~~ / \d+ <?before ' dollars'> /; # 「100」

Съвпадението е само 100 — текстът dollars е проверен, но не е включен.

Понеже погледът напред само твърди какво следва, едно и също число съвпада или не в зависимост от валутата след него:

say so '100 euro'    ~~ / \d+ <?before ' euro'> /; # True
say so '100 dollars' ~~ / \d+ <?before ' euro'> /; # False

Цифрите в двата низа са еднакви, но твърдението приема 100 само когато след него идва euro.

Отрицателната форма е полезна за „… но не когато след него следва …“. Съпоставете cat само когато след него не следва цифра:

say so 'cats' ~~ / cat <!before \d> /; # True
say so 'cat5' ~~ / cat <!before \d> /; # False

В cat5 погледът напред вижда цифра веднага след cat, така че отрицателното твърдение се проваля и цялото съвпадение се проваля.

Практика

Направете 1 тест върху съдържанието на тази тема.

Навигация в курса

Твърдения за оглед   |   Тест — Оглед напред


💪 Или преминете направо към упражненията в този раздел.