4

ログエントリのようにフォーマットされた長い文字列があり、そこからいくつかのキャプチャを取得して、それらをさまざまな変数に格納しようとしています。

Rubyは最初の9つのキャプチャを変数$1... $ 9に格納しますが、他のキャプチャも$ 10 ... $ 99に格納しますか?

そうでない場合、これを行う簡単な方法は何でしょうか?

4

2 に答える 2

8

String#matchMatchDataキャプチャの配列を保持するオブジェクトを返します。

m = Regexp.new('(.)' * 20).match('The quick brown fox jumps over the lazy dog')
m[12]
# => "r" 

$ 12も機能しますが、次のようになります。

> $12
# => "r" 
于 2012-10-21T16:19:10.790 に答える
6

はい、そうです。

"a2c4d7l4l0j4h9h7".gsub(/(\w)(\d)(\w)(\d)(\w)(\d)(\w)(\d)(\w)(\d)(\w)(\d)(\w)(\d)(\w)(\d)/) do
  $12
end
#=> "4"
于 2012-10-21T16:19:39.180 に答える