Регулярные выражения — 1. Разбор примеров
Дистрибутив Parrot содержит несколько примеров, описывающих работу с регулярными выражениями в Perl 6. Соответствующие файлы расположены в каталоге parrot/languages/perl6/t/rx. Рассмотрим первый из этих примеров, в котором собраны самые простые выражения. Обратите внимание на отличия от синтаксиса регулярных выражений Perl 5.
Для сопоставления регулярного выражения с текстовой строкой (вернее говоря, просто с переменной) служит бинарный оператор
Остальные (кроме последнего) примеры полностью прозрачны и понятны, если вы знакомы с использованием регулярных выражений в Perl 5.
В последнем сопоставлении с выражением <[asdfl]> появилась новая оценочная конструкция (называемая assertion). Сопоставление окажется удачным, если выражение, заключенное между угловыми скобками, истинно. В данном случае проверяется истинность подвыражения [asdfl], которое в свою очередь аналогично такой же конструкции в Perl 5 и требует наличия в проверяемой строке одного из указанных символов.
sub main() {
my $s = "hello";
my $t = "ell";
print "ok 2\n" if $s =~ /{ print "ok 1\n" }/;
print "ok 3\n" if $s =~ /hell/;
print "ok 4\n" if $s =~ /$t/;
print "ok 5\n" if $s =~ /\0154/; # == 'l'
print "ok 6\n" if $s =~ /\0154\0154/;
print "ok 7\n" if $s =~ /\x6c\x6C/;
print "ok 8\n" if $s =~ /./;
print "ok 9\n" if $s =~ /<[asdfl]>/;
}18 февраля 2004