先読みアサーション内でキャプチャ グループを使用するにはどうすればよいですか?
このコード:
say "ab" ~~ m/(a) <?before (b) > /;
戻り値:
「a」
0 => 「a」
しかし、「b」もキャプチャすることを期待していました。
そうする方法はありますか?
「b」をマッチの一部にしたくないので、先読みの外に「b」を残したくありません。
「b」をキャプチャする方法はありますが、それでもマッチの外に残しますか?
ノート:
次のように、Raku のキャプチャ マーカーを使用しようとしました。
say "ab" ~~ m/<((a))> (b) /;
「a」
0 => 「a」
1 => 「b」
しかし、「b」が一致の外側に残っていても、正規表現は「b」を処理しているため、これは期待どおりに機能しないようです。そして、私も処理されたくありません。
例えば:
say 'abab' ~~ m:g/(a)<?before b>|b/;
(「a」
0 => 「a」
「b」
「a」
0 => 「a」
「b」)
# Four matches (what I want)
say 'abab' ~~ m:g/<((a))>b|b/;
(「a」
0 => 「a」
「a」
0 => 「a」)
# Two matches