John_Doe4
(John Doe)
1
Hi,
I'm having some trouble with the regexp ![:confused: :confused:](https://ruby-talk.trydiscourse.com/images/emoji/twitter/confused.png?v=5)
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)
Pollop.
路路路
--
Posted via http://www.ruby-forum.com/.
You know what they say, if you choose to use a regex you've got
another problem ![:frowning: :frowning:](https://ruby-talk.trydiscourse.com/images/emoji/twitter/frowning.png?v=5)
How about this?
a = "foo.bar/somePath/somepage.php?attr=value&theone=64646hs554&other=ddd"
a.split(/\?|&/).each do |b|
聽聽if b =~ /^theone=(.*)/
聽聽聽聽puts $1
聽聽end
end
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.
路路路
On Fri, Feb 18, 2011 at 4:02 PM, John Doe <netiqicufenihyse@tempomail.fr> wrote:
Hi,
I'm having some trouble with the regexp ![:confused: :confused:](https://emoji.discourse-cdn.com/twitter/confused.png?v=12)
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)
botp1
(botp)
4
there are many ways.
sometimes, we just need to focus on what we need... eg,
Hash[* "foo.bar/somePath/somepage.php?attr=value&theone=64646hs554&other=ddd".scan(/(\w+)=(\w+)/).flatten]
#=> {"attr"=>"value", "theone"=>"64646hs554", "other"=>"ddd"}
best regards -botp
路路路
On Fri, Feb 18, 2011 at 11:02 PM, John Doe <netiqicufenihyse@tempomail.fr> wrote:
foo.bar/somePath/somepage.php?attr=value&theone=64646hs554&other=ddd
What I need is the value of the "theone" attribute.
John_Doe4
(John Doe)
5
Thanks a lot for your help ! ![:smiley: :smiley:](https://ruby-talk.trydiscourse.com/images/emoji/twitter/smiley.png?v=5)
路路路
--
Posted via http://www.ruby-forum.com/.