From: "Jesús Gabriel y Galán" Date: 2011-02-19T00:49:53+09:00 Subject: Re: Help for extracting text with regexp. On Fri, Feb 18, 2011 at 4:02 PM, John Doe wrote: > Hi, > > I'm having some trouble with the regexp :/ > > I'm messing up with the match, scan methods, I'm not sure wich one I > should use. > > Here's what I'm trying to do : > > I have a string that's an URL with get values : > Ex : > foo.bar/somePath/somepage.php?attr=value&theone=64646hs554&other=ddd > > What I need is the value of the "theone" attribute. > This attribute may or may not be the last one in the string ! > > I don't know if it's possible to put the two cases in one regexp... > > Here are my two regexp : > > If it's not the last attribute > /session=(.*?)&/ > If it's the last attribute > /session=(.*?)$/ > > What should I use next to extract the value ? scan or match ? > > myString.scan(/session=(.*?)&/) ? > How can I handle the two situation ? > > Thanks a lot for your help ! > > (Sorry for my english) URI and CGI from the standard library will do the work for you: irb(main):001:0> require 'uri' => true irb(main):002:0> require 'cgi' => true irb(main):004:0> params = CGI.parse(URI.parse("foo.bar/somePath/somepage.php?attr=value&theone=64646hs554&other=ddd").query) => {"other"=>["ddd"], "theone"=>["64646hs554"], "attr"=>["value"]} irb(main):005:0> params["theone"] => ["64646hs554"] irb(main):006:0> params["theone"].first => "64646hs554" Jesus.