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

Розв’язання: Ціле слово

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

Код

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.

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

Ціле слово   |   Твердження перегляду