From: "Thomas B." Date: 2008-09-26T23:23:14+09:00 Subject: Re: Short question on regex in Ruby Chris Ro wrote: > place1 = string1.gsub(/.*(\d+)th.*/,'\1') Hello. I think your approach with using gsub is not the best possible here. It's better to simply find the matching part using match and substitute it for the whole string, like this: place1 = string1.match(/(\d+)th\b/)[1] The \b ensures that the next character after 'th' is not a word character (\b is word boundary), and [1] at the end is extracting the first bracketed group. It also makes it possible to skip the .* at both ends, which is a bit ugly. Apart from that, a useful piece of knowledge about regexps: /.*?(\d+)th.*/ will match what you want, because the first .*? will be reluctant to eat up more characters, so it will pass to \d+ as many digits as it can. TPR. -- Posted via http://www.ruby-forum.com/.