From: Stefano Crocco Date: 2007-12-30T21:59:15+09:00 Subject: Re: find next occurence, regular expressions Alle domenica 30 dicembre 2007, John Griffiths ha scritto: > Hi, ok I'm none to good at regular expressions but i've got to do > something and need a little help. > > Basically i'm trying to hunt down a particular word within a url string, > > so to test, i define a local variable, var_string, > > var_string="user=22&val=999" > > then run a regular expression match on the variable, > > user = var_string.match(/=(\w+)&/) > > which returns => '22' as it's looking for the first word occurence which > has = and a & at the start & finish. > > so the question is how could i return the second occurence (999) ? In ruby 1.8, String#match always returns the first match. If you need to find other matches, you can look at StringScanner or String#scan (of course, you'll need to remove the & from the regexp, or make it optional, if you want to match the string '999'. To make the '&' optional, put a ? after it: /=(\w+)&?). In ruby 1.9, instead String#match should accept an offset (as far as I know, the documentation doesn't mention this, but it seems to work). You should still modify the regexp to make it work. I hope this helps Stefano