在Ruby中使用正则表达式从字符串中提取模式后的数字[重复]

blmhpbnm  于 12个月前  发布在  Ruby
关注(0)|答案(1)|浏览(80)

这个问题已经有答案了

How to extract numbers from string containing numbers+characters into an array in Ruby?(1个答案)
上个月关门了。
我有一个像a:1,b:2,c:3,ids:4-5-6-7-这样的字符串,想用正则表达式提取ids:之后的数字,但不提取之前的数字。
我用Rubular试了一下:

ids:(?:(\d+)-)+

但我得到的只是最后一个数字。
我应该如何修改regex?
我想做的是得到下面的数组。

"`a:1,b:2,c:3,ids:4-5-6-7-`".scan(/regex/).flatten
=> ['4', '5', '6', '7']
qfe3c7zg

qfe3c7zg1#

我不认为有理由使用如此复杂的regexp,而是使用一个非常简单的:

"aaaaaaaa,ids:1-2-3-4-5-".scan(/\d+/)
#=> ["1", "2", "3", "4", "5"]

相关问题