0

我正在使用带有正则表达式的扫描函数,该函数返回以下对象。扫描的结果分配给 h。

但是,当我调用 h[0] 时,即使发生多次,我也只会收到一个 somedata1 实例。如何过滤结果以便计算匹配字符串的每个实例?

#<MatchData "somedata1">, #<MatchData "somedata1">, #<MatchData "somedata2">

++++++++++++++++++++++++++++++++++++++++编辑+++++++++++++ ++++++++++++++++++++++++++++

"sometext".to_enum(:scan, /someregex/).map { Regexp.last_match }
4

3 回答 3

0

事实证明,简单地循环/显示每个实例#<MatchData "">就可以了

于 2013-06-14T17:03:23.373 回答
0

你可以用 计算结果count

h是一个数组,所以你可以做

h.count
于 2013-06-14T07:19:09.947 回答
0

您应该在扫描或使用 group_by 时计算它

 r = a.group_by{|s| s.data}
 r.each{|k,v| p k + "=" + v.count.to_s}
于 2013-06-14T07:28:03.370 回答