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

Границы слов

Сопоставление cat срабатывает и внутри category, потому что эти три буквы там действительно есть. Часто это не то, чего вы хотите: вам нужно целое слово cat. Эту задачу решает якорь границы слова.

  • << совпадает у левого края слова (в начале слова)
  • >> совпадает у правого края слова (в конце слова)

Заключите слово в эти якоря, чтобы оно сопоставлялось только как целое слово:

say 'the cat sat' ~~ /<< cat >>/;    # 「cat」
say so 'category'  ~~ /<< cat >>/;   # False

В слове category сразу после cat границы слова нет, поэтому привязанный шаблон не срабатывает — ровно то поведение, которого мы добивались.

Граница слова находится между словесным символом (\w) и несловесным, поэтому сама она ничего не поглощает; как ^ и $, она лишь утверждает позицию.

Эти два якоря можно записать и символами угловых кавычек « и », если они вам больше нравятся. Ведут они себя в точности как << и >>:

say 'the cat sat' ~~ /« cat »/;  # 「cat」
say so 'category'  ~~ /« cat »/;  # False

Практика

Пройдите 1 тест по содержанию этой темы.

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

Тест — Якоря строки   |   Тест — Якоря


💪 Или перейдите сразу к упражнениям этого раздела.