String.match
会返回MatchData
,但如何从MatchData
获取匹配的字符串?
puts "foo bar".match(/(foo)/)
输出:
#<MatchData "foo" 1:"foo">
对不起,我是水晶新手。
答案 0 :(得分: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
您可以在API docs
中找到有关MatchData
的更多信息