Perl 6的捕获重复匹配组分别?(Perl 6 capturing repeating match

2019-09-17 03:30发布

我相信,Perl 6的提供单独捕获重复的组,而不是早期的口味,你可以只捕获最后一组或整个匹配的字符串组的能力。 有人可以请给一个很好的例子,如何用Perl 6的这真棒功能? 对于如

我需要捕获所有的匹配组此正则表达式

((?:(?:(?:(?:")(?:[^"]*?)")|(?:(?<!")(?:[^"]*?)(?!")))(?<!\\)\|)*) 

我该怎么做,在Perl 6的?

Answer 1:

在一般情况下,如果量化捕获,只需得到所有匹配的列表。 例:

$ perl6 -e '"abc" ~~ /<alpha>+/ and say $<alpha>.join(", ")'
a, b, c

与位置捕获过的作品:

$ perl6 -e '"abc" ~~ /(\w)+/ and say $0.join(", ")'
a, b, c

现在,你可以应用,为自己的正则表达式,它看起来令人费解的人为。 被以某种方式产生的?



文章来源: Perl 6 capturing repeating matching groups separately?