string.split()和正则表达式的奇怪结果

时间:2011-10-06 01:48:41

标签: ruby regex

我正在尝试拆分此字符串:

values = "43/320x240/99/0/0,34/320x240/9/0/115,18/320x240/9/0/115,5/320x240/7/0/0"

只获得每个“组”的第一个数字。而不是分裂,和/我试图只用一个正则表达式。但是当我尝试这个时:

values.split(/\/(\d|x|\/)+,?/g)

我明白了:

["43", "0", "34", "5", "18", "5", "5", "0"]

而不是:

["43", "34", "18", "5"]

为什么我想要的每个号码之间的号码无效?似乎Rails在逗号之前和之后得到所有数字。我尝试了这个其他的RegExp:(/ [\ d | x] +){4},?得到了类似的结果。

有什么不对的我看不到吗?你知道更好的解决方案吗?

1 个答案:

答案 0 :(得分:5)

我相信split也会返回捕获组。尝试使用非捕获括号,或者更好的是,使用字符类:

values.split(/\/[\dx\/]+,?/g)