今の@RegexMatchはマッチしたかどうかしかわからないので、マッチさせたときにキャプチャした文字列も取り出したいという話(BTS:537)。方法としては、
くらいが考えられるでしょうか
仕組み的には3が一番ちゃんとしていますが、二つ以上の値を取り出そうとすると変数に代入せざるを得なくなるなど使い勝手的にはいまいちですね。
@Progn(@Set('result', @RegexMatch(%Subject, /regex/)), @RegexGet($result, 1), @RegexGet($result, 2))
みたいな感じになってしまいます。ひとつの場合でも、
@RegexGet(@RegexMatch(%Subject, /regex/), 1)
のように書く必要があってちょっとわかりにくそうです。
逆に1や2は、@RegexMatchを呼び出すと以前の結果にはアクセスできなくなってしまいます。
1よりは2の方が変更には強そうですが、やっていることは一緒だし、所詮マクロなので書きやすさ重視ということを考えると、1が妥当なところかもしれません。
そうですね. 1. が一番簡単そうでいい気がします.
よろしくお願いします(^^ゞ.