
nota XXV. Пробуем метасимволы
Вроде бы метасимволы не очень изменились в регулярных выражения. \w по-прежнему означает букву, цифру или подчеркивание. \W означает все другие символы. И так далее... Попробуем основные метасимволы.| | #!/usr/bin/perl6
my $abc='perl6.su - здесь осваиваю язык perl_6. ';
if ($abc ~~ m/(\w+)/) {
$0.say;
} | | => <perl6>
|
Поиск дошел до точки, которая не "буква", и остановился. А как насчёт русских букв?| | #!/usr/bin/perl6
my $abc='perl6.su - здесь осваиваю язык perl_6. ';
if ($abc ~~ m/'- ' (\w+)/) {
$0.say;
} | | => <здесь>
|
Sic! Просто великолепно. По умолчанию кириллица это тоже теперь буквы. А если попробовать \W?| | #!/usr/bin/perl6
my $abc='perl6.su - здесь осваиваю язык perl_6. ';
my @fragm=$abc.split(/\W+/);
for @fragm {.say} | | perl6
su
здесь
осваиваю
язык
perl_6
|
Совершенно всё тут понятно. Точка означает любой символ.| | #!/usr/bin/perl6
my $abc='perl6.su - здесь осваиваю язык perl_6. ';
if ($abc ~~ m/(.+)/) {
$0.say;
} | | => <perl6.su - здесь осваиваю язык perl_6. >
|
\d означает цифру.| | #!/usr/bin/perl6
my $abc='perl6.su - здесь осваиваю язык perl_6. ';
if ($abc ~~ m/(\d+)/) { $0.say; } | | => <6>
|
Интересно, что в "Using perl 6" написано, что \d соответствует не только индийским цифрам, но и латинским.| | #!/usr/bin/perl6
my $abc='nota XXV. Пробуем метасимволы';
if ($abc ~~ m/(\d+)/) {
$0.say;
}
else {"Hic numeri non sunt".say} | | Hic numeri non sunt |
Это шутка, как оказалось. Хотя, видимо, можно поставить какой-то модифицирующий ключ... \N означает все символы кроме символа новой строки.| | #!/usr/bin/perl6
my $abc='perl6.su - здесь осваиваю язык perl_6. ';
if ($abc ~~ m/(\N+)/) { $0.say; } | | => <perl6.su - здесь осваиваю язык perl_6. >
|
N.B. Надо найти список всех возможных метасимволов. # mutatio postrema: 26 Aug 2010
|