Курс Raku / Регулярні вирази та граматики / Регулярні вирази / Якорі
Початок і кінець рядка
Два якорі позначають кінці рядка:
^зіставляється на самому початку рядка$зіставляється в самому кінці
Використовуйте ^, щоб вимагати, аби збіг починався з
початку:
say so 'http://example' ~~ /^ http /; # True
say so 'see http://x' ~~ /^ http /; # FalseДругий рядок містить http, але не на початку, тож
заякорений шаблон зазнає невдачі.
Постановка ^ та $ навколо шаблону змушує
його зіставитися з усім рядком, не лишаючи нічого
зайвого з жодного боку:
say so 'hello' ~~ /^ hello $/; # True
say so 'hello world' ~~ /^ hello $/; # FalseЦе дуже поширена ідіома для перевірки — наприклад, «чи є цей рядок точно числом?»:
say so '2025' ~~ /^ \d+ $/; # True
say so '20a5' ~~ /^ \d+ $/; # FalseЯкорі рядків тексту
Коли текст має кілька рядків, партнери ^^ та
$$ зіставляються на початку й у кінці кожного
рядка, а не всього тексту. Відмінність від ^ та
$ виявляється, щойно потрібний вам текст опиняється не на
першому рядку: одинарні якорі бачать лише весь текст і зазнають невдачі,
а подвоєні зіставляються на будь-якому рядку.
say so "cat\ndog" ~~ /^ dog $/; # False
say so "cat\ndog" ~~ /^^ dog $$/; # TrueТут \n починає другий рядок. ^^ вимагає,
щоб dog стояло на початку рядка, а $$ — щоб у
кінці; на другому рядку виконується і те, і те, тож подвоєні якорі
вдаються там, де одинарні не можуть.
Практика
Виконайте 1 тест за змістом цієї теми.
Навігація курсом
← Якорі | Тест — Якорі рядка →
💪 Або перейдіть одразу до вправ цього розділу.