为什么匹配在此ruby regexp中只找到1个组?

时间:2016-01-02 12:14:25

标签: ruby regex

我有这个字符串:

str = "\r\n <span>60 %</span>\r\n <br>\r\n40 %"

我想提取2个百分比,所以我写了这个:

str.match(/(\d{1,2}\s%)/)

但它只返回第一个并且无法理解原因:

=> #<MatchData "60 %" 1:"60 %">

如果我在rubular中尝试这个,那就可以了。

rubular version

2 个答案:

答案 0 :(得分:2)

使用scan代替str.scan(/(\d{1,2}\s%)/) ["60 %", "40 %"] 只找到第一个匹配。

x

将生成匹配数组

x

答案 1 :(得分:0)

这是设计的。 match找到第一场比赛。