Курс 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 тест за змістом цієї теми.
Навігація курсом
← Твердження перегляду | Тест — Перегляд уперед →
💪 Або перейдіть одразу до вправ цього розділу.