Курс по Raku / Регулярни изрази и граматики / Регулярни изрази / Литерали и класове от знаци
Класове от знаци
Често не искате да съпоставите един фиксиран знак, а кой да е знак от
някакво множество. Такова множество се нарича клас от знаци и
се записва между <[ и ]>:
say 'grey' ~~ / gr <[ae]> y /; # 「grey」
say 'gray' ~~ / gr <[ae]> y /; # 「gray」Класът <[ae]> съпоставя един знак, който е или
a, или e, така че и двата изписа на цвета
съвпадат.
Вътре в скобите можете да изброите диапазон с две точки:
say 'a1b2' ~~ / <[0..9]> /; # 「1」<[0..9]> съпоставя коя да е една цифра; първата
цифра в низа е 1.
За да съпоставите знак, който не е в множеството, сложете знак минус веднага след отварящата скоба:
say 'stop!' ~~ / <-[a..z]> /; # 「!」Тук <-[a..z]> съпоставя първия знак, който не е
малка буква, а това е удивителният знак.
Можете да съчетаете няколко парчета в един клас. Например
<[a..z A..Z 0..9]> съпоставя буква или цифра.
Интервалите там са само за четимост — както навсякъде в регулярния
израз, интервалите вътре в <[…]> се пренебрегват,
така че <[a..zA..Z0..9]> е точно същият клас.
Практика
Направете 1 тест върху съдържанието на тази тема.
Навигация в курса
← Съпоставяне на буквален текст | Тест — Собствени класове →
💪 Или преминете направо към упражненията в този
раздел.