1

String.match返回 a 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 回答