Курс по 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 тест върху съдържанието на тази тема.

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

Съпоставяне на низове   |   Тест — Интелигентно съпоставяне


💪 Или преминете направо към упражненията в този раздел.