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

Звездичка, плюс и въпросителна

Три символа покриват най-честите случаи. Всеки от тях се отнася за елемента непосредствено преди него:

  • * — нула или повече пъти
  • + — един или повече пъти
  • ? — нула или един път (незадължително)

Знакът плюс съпоставя поредица от един или повече знака:

say 'aaah' ~~ / a+ /; # 「aaa」

Той съпостави толкова a, колкото можа — три на брой.

Звездичката е като плюса, но успява и когато няма какво да се съпостави, защото са позволени нула повторения:

say 'colour' ~~ / colou*r /; # 「colour」
say 'color'  ~~ / colou*r /; # 「color」

Въпросителната прави парчето незадължително — тя съпоставя независимо дали парчето е налице:

say 'colour' ~~ / colou?r /; # 「colour」
say 'color'  ~~ / colou?r /; # 「color」

Квантификаторите се отнасят за онова, което идва непосредствено преди тях, включително за клас от знаци. Например \d+ съпоставя поредица от една или повече цифри — цяло число:

say 'order 66' ~~ / \d+ /; # 「66」

Практика

Направете 1 тест върху съдържанието на тази тема.

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

Квантификатори   |   Тест — Основни квантификатори


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