【发布时间】:2012-12-01 23:52:56
【问题描述】:
我第一次在 Ruby 中遇到 MatchData#captures 方法,想问是否有人可以为我解释一下。 Ruby 文档说:
返回捕获数组;相当于
mtch.to_a[1..-1]。
但是,我目前正在对一个长字符串运行正则表达式,它似乎返回给我最后评估的项目?这有意义吗?
这是字符串:
431cdb7b1ad8183a1434b6d1a407731fac0ea61b8d720d733fefaa77f063df8e vidcoder [23/May/2012:01:17:16 +0000] 76.78.212.49 - B24DEA4883A9FF95 REST.GET.OBJECT accounts/6/videos/xboxcCFC/video.mp4 "GET /accounts/6/videos/xboxcCFC/video.mp4 HTTP/1.1" 206 - 2 697898511 56 56 "-" "Apple Mac OS X v10.6.8 CoreMedia v1.0.0.10K549" -
这是正则表达式:
line.match(%r{^.*\s+HTTP.*\s+-\s+(\d+)\s+}).captures
在这种情况下它返回数字 2
【问题讨论】: