Perl 6

Регулярные выражения — 3. Квантификаторы

Как и прежде, после любого символа в регулярном выражении допустимо указывать квантификатор — то есть некую конструкцию, которая уточняет, сколько раз символ может встречаться в тестируемой строке. Традиционные односимвольные квантификаторы *, + и ? работают так же, как в Perl 5.

Из примера parrot/languages/perl6/t/rx/basic_3.p6 можно узнать о новой форме интервального квантификатора, который устанавливает границы интервала числа повторений. В Perl 5 для этого служили фигурные скобки. В Perl 6 используются угловые:

Обратите внимание на две формы записи: <число_повторений> и <минимум,максимум>. Кроме того, видно, что вместо констант можно использовать переменные.

 

sub main() {
   my $s = 'accaacaacaaba';
   print "ok 1\n" if $s =~ /aca*/;
   print "ok 2\n" if $s =~ /aca+/;
   print "ok 3\n" if $s =~ /aca?/;
   print "ok 4\n" if $s =~ /aca<2>/;
   print "ok 5\n" if $s =~ /aca<0,2>/;
   print "ok 6\n" if $s =~ /aca<2,1000>/;
   my ($n, $m) = (2, 34);
   print "ok 7\n" if $s =~ /aca<2,$m>/;
   print "ok 8\n" if $s !~ /aca<3,$m>/;
   print "ok 9\n" if $s =~ /abb?/;
   print "ok 10\n" if $s !~ /abb+/;
   print "ok 11\n" if $s =~ /abb*/;
}
20 февраля 2004