给出以下字符串示例:
human_id_2, human_id_44, human_id_3123121, human_id_11111
我试图循环并仅提取ID /整数。
params.each do |key, value|
if (key.to_s[/human_id_.*/])
theId= key.to_s[/human_id_.*/]
....
end
end
我期待theId
循环播放2号,44号等......
知道为什么theId
未正确设置?
答案 0 :(得分:3)
为什么不将"human_id_"
替换为""
?不需要为此做正则表达式:
theId = key.gsub("human_id_", "")
答案 1 :(得分:2)
如果有混合物,这将起作用并过滤掉:
string = "human_id_2, blahblah blah_other_stuff234234, human_id_44, what_up_4545, human_id_3123121, human_id_11111, sdjfhksfh$##$4343894"
string.scan(/(?<=human_id_).*?(?!\d)/)
=> ["2", "44", "3123121", "11111"]
注意它如何忽略不需要的数据。
答案 2 :(得分:1)
"human_id_2, human_id_44, human_id_3123121, human_id_11111".scan(/\d+/)
# => ["2", "44", "3123121", "11111"]