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

Розв’язання: Між дужками

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

Код

say '$50' ~~ / <?after '$'> \d+ >> <!before '.'> /;

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

Вивід

「50」

Коментарі

  1. <?after '$'> — це стверджувальний огляд назад: він вимагає $ безпосередньо перед числом, — а <!before '.'> — заперечний огляд уперед: він вимагає, щоб далі не йшла .. Ані $, ані оточення не стають частиною збігу, тож результатом є просто 50.

  2. >> — це межа слова, що позначає кінець числа. Без неї жадібний \d+ міг би відкотитися: на $39.99 він віддав би 9 і зіставився б із 3 (за яким . не йде). >> змушує взяти все число, тож $3.99 та $39.99 правильно не дають збігу.

  3. Це той випадок, коли огляд уперед відпрацьовує свій хліб: «за яким не йде десяткова крапка» неможливо виразити звичайною групою захоплення, бо там немає чого захоплювати — є лише умова, яку слід перевірити.

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

Між дужками   |   Прислівники