Курс Raku / Регулярні вирази та граматики / Регулярні вирази / Твердження перегляду / Вправи / Між дужками
Розв’язання: Між дужками
Ось одне з можливих розв’язань задачі.
Код
say '$50' ~~ / <?after '$'> \d+ >> <!before '.'> /;🦋 Знайдіть програму у файлі whole-dollar.raku.
Вивід
「50」Коментарі
<?after '$'>— це стверджувальний огляд назад: він вимагає$безпосередньо перед числом, — а<!before '.'>— заперечний огляд уперед: він вимагає, щоб далі не йшла.. Ані$, ані оточення не стають частиною збігу, тож результатом є просто50.>>— це межа слова, що позначає кінець числа. Без неї жадібний\d+міг би відкотитися: на$39.99він віддав би9і зіставився б із3(за яким.не йде).>>змушує взяти все число, тож$3.99та$39.99правильно не дають збігу.Це той випадок, коли огляд уперед відпрацьовує свій хліб: «за яким не йде десяткова крапка» неможливо виразити звичайною групою захоплення, бо там немає чого захоплювати — є лише умова, яку слід перевірити.
Навігація курсом
← Між дужками | Прислівники →