ログエントリのようにフォーマットされた長い文字列があり、そこからいくつかのキャプチャを取得して、それらをさまざまな変数に格納しようとしています。
Rubyは最初の9つのキャプチャを変数$1... $ 9に格納しますが、他のキャプチャも$ 10 ... $ 99に格納しますか?
そうでない場合、これを行う簡単な方法は何でしょうか?
String#match
MatchData
キャプチャの配列を保持するオブジェクトを返します。
m = Regexp.new('(.)' * 20).match('The quick brown fox jumps over the lazy dog')
m[12]
# => "r"
$ 12も機能しますが、次のようになります。
> $12
# => "r"
はい、そうです。
"a2c4d7l4l0j4h9h7".gsub(/(\w)(\d)(\w)(\d)(\w)(\d)(\w)(\d)(\w)(\d)(\w)(\d)(\w)(\d)(\w)(\d)/) do
$12
end
#=> "4"