Курс Raku / Регулярні вирази та граматики / Регулярні вирази / Твердження перегляду / Вправи / За чим не йде

Розв’язання: За чим не йде

Ось одне з можливих розв’язань задачі.

Код

say so '50 dollars' ~~ / \d+ >> <!before '%'> /;

🦋 Знайдіть програму у файлі not-followed.raku.

Вивід

True

Коментарі

  1. <!before '%'> — це заперечний огляд уперед: він успішний лише тоді, коли текст одразу після числа не є %.

  2. >> — це межа слова, що позначає кінець числа, і тут вона важлива. Без неї жадібний \d+ відкотився б: на 50% off він віддав би 0 і зіставився б лише з 5 — за яким % не йде, — тож шаблон помилково спрацював би. >> змушує \d+ узяти все число, тож огляд уперед перевіряється у справжньому кінці. У результаті 50 dollars дає True, а 50% off правильно дає False.

Навігація курсом

За чим не йде   |   Між дужками