Курс по Raku / Регулярни изрази и граматики / Регулярни изрази / Котви / Exercises / Цяла дума

Решение: Цяла дума

Ето едно възможно решение на задачата.

Код

say 'this is fine' ~~ /<< is >>/;

🦋 Намерете програмата във файла whole-word.raku.

Изход

「is」

Коментари

  1. Котвите << и >> изискват граница на дума от всяка страна на is.

  2. Буквите is стоят и вътре в this, но там няма граница на дума отляво, така че машината прескача това появяване и вместо него съпоставя самостоятелната дума is.

  3. И двата кандидата отпечатват едно и също 「is」 — как тогава да разберете кой всъщност е съвпаднал? Променете is, скрито вътре в this — например превърнете низа в 'thus is fine'. Изходът пак е 「is」, непроменен, което доказва, че това появяване никога не е било съвпадението. Сега променете самостоятелната дума (да речем 'this it fine') и съвпадението изчезва (Nil). Можете и да попитате съвпадението къде започва: ('this is fine' ~~ /<< is >>/).from връща 5 — позицията на самостоятелното is, а не 2.

Навигация в курса

Цяла дума   |   Твърдения за оглед