Thank you David!

-----Original Message-----
From: David A. Black [mailto:dblack / rubypal.com] 
Sent: donderdag 3 juni 2010 12:18
To: ruby-talk ML
Subject: Re: gsub with wildcard

Hi --

On Thu, 3 Jun 2010, Reinhart Viane wrote:

> Hello,
>
>
>
> I want to replace:
>
>
>
> id="idxxxxxxx" with id="id20"
>
> in a string
>
>
>
> I know this can be done with gsub but I don't know how to use wildcards.
>
> The xxxxxxx can be of any length but only numbers

You don't actually want a wildcard; you want a character class and a
quantifier. The character class is \d (which is short for [0-9]), and
the quantifier is + (one or more, assuming that if there aren't any
then this isn't one of the cases you're trying to change).

So, you'd end up with something like this:

   str.gsub!(/\bid="id\d+"/, 'id="id20"')

(I tossed in a \b (word boundary) so that if it found 'david="id123"'
it wouldn't change it :-)


David

-- 
David A. Black, Senior Developer, Cyrus Innovation Inc.

THE                   Ruby training with Black/Brown/McAnally
     COMPLEAT          Coming to Chicago area, June 18-19, 2010!
              RUBYIST  http://www.compleatrubyist.com