【发布时间】:2017-06-03 19:19:27
【问题描述】:
假设我想匹配至少有 4 个字母的单词,(并将它们存储在一个数组中),我编写了以下正则表达式,它工作正常:
if ( $text ~~ m:g/(\w ** 4..*)/ )
{
my @words = $/;
...
}
量词从4到无限
**4..*
现在,如果我尝试用标量 $min_length 替换 4。两者:
if ($text ~~ m:g/(\w ** $::min_length..*)/)
和:
if ($text ~~ m:g/(\w ** <$::min_length>..*)/)
导致编译出错: 量词不量化任何东西
有没有办法将标量用作量词?
【问题讨论】:
-
错误信息很糟糕。如果你想帮助开发人员,请发送电子邮件至“rakudobug@perl.org”,主题类似于“[LTA]“量词不量化”消息,用于实际量化某些东西的代码,只是语法无效'和包含此问题的最小版本、您期望的消息类型以及 Rakudo 当前显示的实际错误消息的正文。 ('LTA',代表 Less Than Awesome,是 Perl 6 世界中用于表示不完美的错误消息的术语。这个错误消息离完美还有一百万英里!)
-
谢谢。我会。错误消息有点神秘,是的,但至少它指向了正确的地方:)