Курс 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 тест за змістом цієї теми.
Навігація курсом
← Зіставлення рядків | Тест — Розумне зіставлення →
💪 Або перейдіть одразу до вправ цього розділу.