perl6.suОсвоим perl6 к 2015 году!

nota XXVII. Объединение списков искомых символов в регулярном выражении


       Если мы ищем символы из списков [a..z] и [а..я], то их можно объединить так [a..zа..я]. Но можно и так: [a..z]+[а..я]
    
#!/usr/bin/perl6
my $textus='Как говорится, sic transit gloria mundi';
$textus ~~ s:g/<[a..z]+[а..я]>/?/;
$textus.say;
К?? ?????????, ??? ??????? ?????? ?????

       Да.
       Но ведь эти списки можно ещё и вычитать!
    
#!/usr/bin/perl6
my $textus='Как говорится, sic transit gloria mundi';
$textus ~~ s:g/<[a..z]+[а..я]-[с..я]-[g..o]>/?/;
$textus.say;
К?? ??????тся, ?i? ???n?i? glo?i? m?n?i

       Забавно.
       А если начать с минуса?
    
#!/usr/bin/perl6
my $textus='Как говорится, sic transit gloria mundi';
$textus ~~ s:g/<-[a..z]>/?/;
$textus.say;
???????????????sic?transit?gloria?mundi

       То есть, когда начинаешь с минуса, тогда получается, что из почти бесконечного списка всяческих символов мы отнимаем a..z. А если потом ещё отнять?
    
#!/usr/bin/perl6
my $textus='Как говорится, sic transit gloria mundi';
$textus ~~ s:g/<-[a..z]-[т..я]>/?/;
$textus.say;
??????????т?я??sic?transit?gloria?mundi

       Просто красота.
# mutatio postrema: 26 Aug 2010

   регулярные выражения      charta situs       nota XXVI <<     >> nota XXVIII   

    RSS     stdin@perl6.su    © Alexius Karmanov, 2010-2011