1
String.match
返回MatchData
,但是如何從MatchData
獲得匹配的字符串?用正則表達式提取子字符串?
puts "foo bar".match(/(foo)/)
輸出:
#<MatchData "foo" 1:"foo">
對不起,我是新來的結晶。
String.match
返回MatchData
,但是如何從MatchData
獲得匹配的字符串?用正則表達式提取子字符串?
puts "foo bar".match(/(foo)/)
輸出:
#<MatchData "foo" 1:"foo">
對不起,我是新來的結晶。
您可以通過衆所周知的組索引來訪問它,確保處理零(不匹配)的情況。
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
http://carc.in/#/r/2ve我得到同樣的錯誤,因爲(使用0.7.3)找到
MatchData
更多信息。它在最新的git中修復了嗎? – xd1le對我忘了處理這個零案例,更新了我的答案。 –