Perl 6中嵌套正则表达式的范围

时间:2017-11-02 10:59:54

标签: perl6

是否可以按任意顺序定义嵌套的regexes

以下程序按预期工作:

my regex letter { <[a b]> }
my regex word { <letter> + }

my $string = 'abab';
$string ~~ &word;
put $/; # abab

如果我交换前两行,编译器会产生错误。

有没有办法覆盖这个限制(不使用grammars)?

1 个答案:

答案 0 :(得分:4)

您可以将正则表达式放在您预先声明但稍后设置的变量中:

my $letter;
my regex word { <$letter> + }
$letter = regex { <[a b]> }

my $string = 'abab';
$string ~~ &word;
put $/; # abab