
квантификаторы
+, * и ? имеют по-прежнему место быть:
| | #!/usr/bin/perl6
my $textus='Gooooooogle';
$textus ~~ s:g/o+/o/;
$textus.say;
$textus ~~ s/ё*le/ol/;
$textus.say;
my @urls='http://perl6.su', 'https://perl6.su', 'httpd://perl6.su', 'http://perl6.tu';
for @urls {
if m/^http s? '://' \w+ '.' <[rs]> u/ {"$_ validus url est".say}
else {"$_ non validus url est".say}
} | | Gogle
Gogol
http://perl6.su validus url est
https://perl6.su validus url est
httpd://perl6.su non validus url est
http://perl6.tu non validus url est |
Как я понял, квантификатор из фигурных скобок исчез. Вместо него пара астерисков. | | #!/usr/bin/perl6
my $textus='Unuuuus Duuo Tres Quattuuuuuuor';
$textus ~~ s:g/u ** 4/#/; # :g - означает глобальную замену
$textus.say; | | Un#s Duuo Tres Quatt#uuor |
Это был первый вариант, когда после двух астерисков указывается точное количество повторений образца.| | #!/usr/bin/perl6
my $textus='Unuuuus Duuo Tres Quattuuuuuuor';
$textus ~~ s:g/u ** 3..5/#/;
$textus.say; | | Un#s Duuo Tres Quatt#uor |
Это был второй вариант, когда после астерисков диапазон разных вариантов. Как видно, сейчас также действует правило жадности, когда из всех возможных выборок берётся самая толстая.| | #!/usr/bin/perl6
my $textus='Unuuuus Duuo Tres Quattuuuuuuor';
$textus ~~ s:g/u ** 3..*/#/;
$textus.say; | | Un#s Duuo Tres Quatt#or |
Это двухсполовинный вариант. В диапазоне появляется звездочка, что означает бесконечность. В данном случае - от трех до бесконечности. И теперь третий вариант, самый неочевидный для неискушенного прохожего.| | #!/usr/bin/perl6
my $textus='abcbcbcabcbcbcbcabcdbcdbcdabcbcbcabab';
$textus ~~ s:g/b ** c/#/;
$textus.say; | | a#ca#ca#cd#cd#cda#ca#a# |
b ** c - это цепочки: 'b', 'bcb', 'bcbcb', 'bcbcbcbcbcb' etc. Превратить жадность в аскетичность можно как всегда, поставив вопрос после квантификатора:| | #!/usr/bin/perl6
my $textus='Unuuuus Duuo Tres Quattuuuuuuor';
$textus ~~ s:g/u **? 3..5/#/;
$textus.say; | | Un#us Duuo Tres Quatt##or |
Вот. Стоило умерить аппетит, как места хватило на две решеточки. # mutatio postrema: 27 Aug 2010
|