Scott SA <[EMAIL PROTECTED]> wrote: > >>> string.replace('120.exe','.exe','') > '120'
Don't use string.replace(), use the replace method of strings: >>> '120.exe'.replace('.exe', '') '120' >... but it has a side-effect of mid-string replacements: > > >>> string.replace('123.exe.more','.exe','') > '123.more' >>> s = '120.exe.more' >>> (s+'\0').replace('.exe' + '\0', '').rstrip('\0') '120.exe.more' Yeah, it's a little fragile if you have embedded NULLs. In which case, you can always test with endswith(): def strip_suffix(s, suffix): if s.endswith(suffix): return s[:-len(suffix)] return s You can even make it case-insensitive: def istrip_suffix(s, suffix): if s.lower().endswith(suffix.lower()): return s[:-len(suffix)] return s Point being, don't reach for regular expression solutions too quickly. They will almost certainly be (a) slower and (b) harder for other people to read. -- \S -- [EMAIL PROTECTED] -- http://www.chaos.org.uk/~sion/ "Frankly I have no feelings towards penguins one way or the other" -- Arthur C. Clarke her nu becomeþ se bera eadward ofdun hlæddre heafdes bæce bump bump bump
-- http://mail.python.org/mailman/listinfo/python-list