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

And*_*Gil 0 ruby regex

我正在尝试拆分这个字符串:

values = "43/320x240/99/0/0,34/320x240/9/0/115,18/320x240/9/0/115,5/320x240/7/0/0"
Run Code Online (Sandbox Code Playgroud)

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

values.split(/\/(\d|x|\/)+,?/g)
Run Code Online (Sandbox Code Playgroud)

我明白了:

["43", "0", "34", "5", "18", "5", "5", "0"]
Run Code Online (Sandbox Code Playgroud)

代替:

["43", "34", "18", "5"]
Run Code Online (Sandbox Code Playgroud)

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

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

Mik*_*lov 5

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

values.split(/\/[\dx\/]+,?/g)
Run Code Online (Sandbox Code Playgroud)