From: "Jesús Gabriel y Galán" Date: 2008-03-28T18:59:56+09:00 Subject: Re: extract data from an array On Fri, Mar 28, 2008 at 10:47 AM, Sijo Kg wrote: > Hi > I have a while loop as below > > while count <= total_ci_id_asso_types do > v = "sd_ci"+"#{count}" > ci_id_asso_type=params[:"#{v}"] > count=count+1 > end > > for example > puts ci_id_asso_type gives > id45service_desk_ci_association_type_id1 > id65service_desk_ci_association_type_id1 etc > > What I need is to get > 45,1 > 65,1 (ie two numbers) from above..How can I do that One way, if the string has always those contents, and only the numbers change: x,y = ci_id_asso_type.match(/id(\d+)service_desk_ci_association_type_id(\d+)/).captures.map {|n| n.to_i} BTW, I would do the loop like this: 1.upto(total_ci_id_asso_types) do |count| v = "sd_ci"+"#{count}" ci_id_asso_type=params[:"#{v}"] end or total_ci_id_asso_types.times do |count| v = "sd_ci"+"#{count + 1}" ci_id_asso_type=params[:"#{v}"] end Regards, Jesus.