Thanks a lot Kent, that indeed solves the issues altogether.

Cheers
Bernard




On 5/3/07, Kent Johnson <[EMAIL PROTECTED]> wrote:
> Bernard Lebel wrote:
> > Hello,
> >
> > Once again struggling with regular expressions.
> >
> > I have a string that look like "something_shp1".
> > I want to replace "_shp1" by "_shp". I'm never sure if it's going to
> > be 1, if there's going to be a number after "_shp".
> >
> > So I'm trying to use regular expression to perform this replacement.
> > But I just can't seem to get a match! I always get a None match.
> >
> > I would think that this would have done the job:
> >
> > r = re.compile( r"(_shp\d)$" )
> >
> > The only way I have found to get a match, is using
> >
> > r = re.compile( r"(\S+_shp\d)$" )
>
> My guess is you are calling r.match() rather than r.search(). r.match()
> only looks for matches at the start of the string; r.search() will find
> a match anywhere.
>
> > My second question is related more to the actual string replacement.
> > Using regular expressions, what would be the way to go? I have tried
> > the following:
> >
> > newstring = r.sub( '_shp', oldstring )
> >
> > But the new string is always "_shp" instead of "something_shp".
>
> Because your re matches something_shp.
>
> I think
> newstring = re.sub('_shp\d' '_shp', oldstring )
> will do what you want.
>
> Kent
>
_______________________________________________
Tutor maillist  -  Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor

Reply via email to