Raku Perl 6中嵌套正则表达式的作用域
可以按任意顺序定义嵌套的Raku Perl 6中嵌套正则表达式的作用域,raku,Raku,可以按任意顺序定义嵌套的正则表达式吗 以下程序按预期工作: 我的正则表达式字母{} 我的正则词{+} 我的$string='abab'; $string~~&word; 投入$/;#阿巴布 如果交换前两行,编译器将产生错误 是否有方法覆盖此限制(无需使用语法)您可以将正则表达式放入预先声明但稍后设置的变量中: my $letter; my regex word { <$letter> + } $letter = regex { <[a b]> } my $string
正则表达式吗
以下程序按预期工作:
我的正则表达式字母{}
我的正则词{+}
我的$string='abab';
$string~~&word;
投入$/;#阿巴布
如果交换前两行,编译器将产生错误
是否有方法覆盖此限制(无需使用语法)您可以将正则表达式放入预先声明但稍后设置的变量中:
my $letter;
my regex word { <$letter> + }
$letter = regex { <[a b]> }
my $string = 'abab';
$string ~~ &word;
put $/; # abab
我的$letter;
我的正则词{+}
$letter=regex{}
我的$string='abab';
$string~~&word;
投入$/;#阿巴布
谢谢!如果我理解正确,$letter
将在我每次使用word
时插入,因此在某些情况下这可能会影响性能?请相信,如果将其绑定到可调用的变量,它可以提高性能(和可读性):my&letter;我的正则词{+}&字母=正则表达式{}代码>。使用符号并将其绑定到一个可调用的
,只有在我们使用它时才会进行计算(惰性计算)。@callyalater谢谢。但是,如果与&字母匹配是一个频繁的操作,那么它是否只会在程序调用它时计算一次或每次?您可以自己回答这个问题,在代码中输入说“regex”
,然后查看您在屏幕上看到的次数是否符合您的期望。