
именованные регексы
Мы уже пробовали грамматики. Оказывается, есть их более простое подобие - именованные регулярные выражения. В "Using perl 6" дается такой пример регекса "слово".
| | #!/usr/bin/perl6
my regex word { \w+ [ \' \w+ ]? } # определение того, что такое слово
# слово это любое количество букв, в которое может затесаться
# один и только один апостроф '
my @verba=<пылесос China plan9 :-) dog's ha'ha ах'ах'ах ну-ну>;
for @verba {
if m/ ^ <&word> $ / { "$_ verbum est".say }
else {"$_ non verbum est".say}
} | | пылесос verbum est
China verbum est
plan9 verbum est
:-) non verbum est
dog's verbum est
ha'ha verbum est
ах'ах'ах non verbum est
ну-ну non verbum est |
Это очень мощная возможность в плане повышения читабельности программы. Также можно коллекционировать регексы для быстрой вставки потом в новые программы. В одном именованном регексе можно использовать другой именованный регекс. # mutatio postrema: 27 Aug 2010
|