String Replace only if whole word?

Michael Yanowitz m.yanowitz at kearfott.com
Fri Nov 17 07:54:05 EST 2006


Hello:

  I am hoping someone knows if there is an easier way to do this or someone
already implemented something that does this, rather than reinventing the
wheel:
  I have been using the string.replace(from_string, to_string, len(string))
to replace names in a file with their IP address.
  For example, I have definitions file, that looks something like:
10.1.3.4   LANDING_GEAR
20.11.222.4   ALTIMETER_100
172.18.50.138 SIB
172.18.50.138 LAPTOP
172.18.51.32  WIN2000
127.0.0.1 LOCALHOST

  and I have a text file (a Python script) that has these names in the file.
In most cases the string.replace() command works great. But there is one
instance which it fails:
Suppose I had in the file:
 if (LAPTOP_IS_UP()):
   It would replace the string with:
 if ("172.18.50.138"_IS_UP()):

   Is there any easy way to avoid this, only replace if a whole word
matches?
I probably need something which determines when a word ends, and I will
define
 a word as containing only 'A'-'Z','a'-'z','0'-'9','_' . As long as the
string
contains more of the word digits after the match, don't replace?

Thanks in advance:
Michael Yanowitz





More information about the Python-list mailing list