1

String.matchを返しますがMatchData、一致した文字列を から取得するにはどうすればよいMatchDataですか?

puts "foo bar".match(/(foo)/)

出力:

#<MatchData "foo" 1:"foo">

水晶初心者ですみません。

4

1 に答える 1

2

既知のグループ インデックスを介してアクセスできます。nil (一致しない) ケースを処理するようにしてください。

match = "foo bar".match(/foo (ba(r))/)
if match
  # The full match
  match[0] #=> "foo bar"
  # The first capture group
  match[1] #=> "bar"
  # The second capture group
  match[2] #=> "r"
end

詳細についてMatchDataは、API ドキュメントを参照してください。

于 2015-06-11T15:47:26.173 に答える