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

Оператор умного сопоставления

Оператор, применяющий регулярное выражение к строке, — это умное сопоставление ~~:

say 'the cat sat' ~~ /cat/; # 「cat」

Шаблон между косыми чертами — самая распространённая форма, но есть ещё две, означающие то же самое и порой более наглядные:

say 'the cat sat' ~~ m/cat/;  # 「cat」
say 'the cat sat' ~~ rx/cat/; # 「cat」

Форма m/.../ подчёркивает, что вы именно сопоставляете, и удобна, когда к сопоставлению нужно добавить параметры (с этими параметрами, которые называются наречиями, вы встретитесь позже). Форма rx/.../ создаёт значение — регулярное выражение, — пока его не применяя.

Очень часто важно лишь то, совпала ли строка, а не что именно нашлось. Поскольку успешное сопоставление — истинное значение, а неудачное — ложное, результат можно использовать прямо в логическом контексте. Чище всего получить простое True или False с помощью функции so:

say so 'the cat sat' ~~ /cat/; # True
say so 'the cat sat' ~~ /dog/; # False

Благодаря этому регулярное выражение естественно смотрится как условие для if:

if 'the cat sat' ~~ /cat/ {
    say 'found it';   # found it
}

Практика

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

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

Сопоставление строк   |   Тест — Умное сопоставление


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