【发布时间】:2017-07-07 12:50:52
【问题描述】:
我不明白为什么我们使用 to_enum 来使字符串可枚举,而扫描方法本身会返回一个匹配数组,在这种情况下 to_enum 会做什么?
这是带有 to_enum 的代码:
string = "The quick 12 brown foxes jumped over the 10 lazy dogs"
p string.to_enum(:scan, /\d+/).map {Regexp.last_match }
返回:
=> [#<MatchData "12">, #<MatchData "10">]
那么为什么我们在这里使用 to_enum 来使字符串可枚举,而我们可以使用 scan 来返回一个数组?
我也尝试单独使用扫描但得到奇怪的结果:
p string.scan(/\d+/).map { Regexp.last_match}
=>[#<MatchData "10">, #<MatchData "10">]
这里有一些我遗漏和不理解的东西......谁能解释一下吗?
谢谢
【问题讨论】:
标签: ruby regex match enumerable