4

Perl 6は、最後のグループまたは一致したグループ文字列全体しかキャプチャできなかった以前のフレーバーとは対照的に、繰り返しグループを個別にキャプチャする機能を提供すると思います。誰かがPerl6のこの素晴らしい機能を使用する方法の良い例を教えてもらえますか?例えば

この正規表現に一致するすべてのグループをキャプチャする必要があります

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

Perl 6でそれを行うにはどうすればよいですか?

4

1 に答える 1

4

一般に、キャプチャを定量化すると、すべての一致のリストが得られます。例:

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

位置キャプチャでも機能します。

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

これで、人為的に複雑に見える独自の正規表現にそれを適用できます。なんらかの方法で生成されていますか?

于 2012-05-10T05:50:17.563 に答える