【发布时间】:2018-02-25 09:21:00
【问题描述】:
我想匹配部分文本字符串中的任何 Num。到目前为止,这个(从https://docs.perl6.org/language/regexes.html#Best_practices_and_gotchas 偷来的)完成了这项工作......
my token sign { <[+-]> }
my token decimal { \d+ }
my token exponent { 'e' <sign>? <decimal> }
my regex float {
<sign>?
<decimal>?
'.'
<decimal>
<exponent>?
}
my regex int {
<sign>?
<decimal>
}
my regex num {
<float>?
<int>?
}
$str ~~ s/( <num>? \s*) ( .* )/$1/;
这似乎是很多(容易出错的)轮子的重新发明。是否有 perl6 技巧来匹配语法中的内置类型(Num、Real 等)?
【问题讨论】:
-
Rakudo 中的 Perl 6 语法是用 NQP 编写的,因此可能存在一些差异,使其更难使用。无论如何,它似乎在
$?LANG -
Jeffrey Goff 开始将其中一些常见的可重用语法位提取到 Grammar::Common: github.com/drforr/perl6-Grammar-Common。
-
Grammar::Common 将是理想的 - 我认为它可能有点未完成 - 感谢您的指针,我会遵循它。
标签: raku