Курс по Raku / Регулярни изрази и граматики / Регулярни изрази / Твърдения за оглед / Exercises / Не е последвано от
Решение: Не е последвано от
Ето едно възможно решение на задачата.
Код
say so '50 dollars' ~~ / \d+ >> <!before '%'> /;🦋 Намерете програмата във файла not-followed.raku.
Изход
TrueКоментари
<!before '%'>е отрицателен поглед напред: той успява само когато текстът веднага след числото не е%.>>е граница на дума, отбелязваща края на числото, и тук тя има значение. Без нея лакомият\d+би се върнал назад: при50% offтой би отстъпил0и би съпоставил само5— след което%не следва, — така че шаблонът погрешно би успял.>>принуждава\d+да вземе цялото число, така че погледът напред се проверява в истинския край. В резултат50 dollarsдаваTrue, а50% offправилно даваFalse.