String Replace only if whole word?

Carsten Haese carsten at uniqsys.com
Fri Nov 17 17:03:22 CET 2006


On Fri, 2006-11-17 at 10:43 -0500, Michael Yanowitz wrote:
> >Your pattern would be "[^A-Za-z0-9_]word[^A-Za-z0-9_]"
> >
> >--
> >Juho Schultz
> 
> 
> Thanks.
>   This works great except for one thing:
> 
> The character after the replacement is deleted, so that if I have
>      send_data (LAPTOP, test_string)
>     it would replace it with:
>      send_data (10.1.3.4 test_string)
>   (ignoring that the 10.1.3.4 is not quoted). The comma is missing.

If you actually wanted to use string replacement, you'd need a pattern
with look-behind and look-ahead assertions along the lines of
"(?<![A-Za-z0-9_])word(?![A-Za-z0-9_])".

Then again, I don't think string replacement is the right tool for the
job. You're saying that the file you are operating on in this fashion is
a Python script. Why don't you just place something like
LAPTOP="10.1.3.4" at the top of that file, or have the script read this
information from a configuration file?

-Carsten





More information about the Python-list mailing list