2012-05-09 14 views
3

Perl 6は、最後のグループまたは一致するグループ文字列全体をキャプチャできる以前のフレーバとは対照的に、繰り返しグループを個別にキャプチャする機能を提供していると思います。誰かがPerl 6のこのすばらしい機能をどのように使って良い例を挙げてください。例えば、Perl 6は繰り返しマッチンググループをキャプチャしていますか?

私はPerl 6の中にいることをどのように行うのです

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

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

+3

サンプル入力には受信したい出力を入力します。 – mob

答えて

3

一般的に、キャプチャを定量化すると、すべての一致のリストが表示されます。例:あまりにも位置キャプチャと

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

作品:

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

今、あなたは単に人為的に複雑に見えた、独自の正規表現にそれを適用することができます。それは何らかの形で生成されていますか?

+0

ありがとうございました。それは生成されていません。テキスト解析の非常に特殊なケースのためです。 – bootkick