Курс Raku / Регулярні вирази та граматики / Регулярні вирази / Якорі / Вправи / Ціле слово
Розв’язання: Ціле слово
Ось один із можливих варіантів розв’язання задачі.
Код
say 'this is fine' ~~ /<< is >>/;🦋 Вихідний код можна знайти у файлі whole-word.raku.
Вивід
「is」Коментарі
Якорі
<<та>>вимагають межі слова з кожного боку відis.Літери
isсидять також усерединіthis, але там ліворуч від них межі слова немає, тож механізм пропускає це входження й натомість зіставляється з окремим словомis.Обидва кандидати виводять те саме
「is」— то як же дізнатися, який із них справді збігся? Змінітьis, приховане всерединіthis, — наприклад, перетворіть рядок на'thus is fine'. Вивід і далі буде「is」, без змін, що доводить: це входження ніколи не було збігом. Тепер змініть натомість окреме слово (скажімо,'this it fine') — і збіг зникне (Nil). Можна також запитати в збігу, де він починається:('this is fine' ~~ /<< is >>/).fromповертає5— позицію окремогоis, а не2.