Курс 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 тест за змістом цієї теми.

Навігація курсом

Зіставлення літерального тексту   |   Тест — Власні класи


💪 Або перейдіть одразу до вправ цього розділу.