Michael Fuhr wrote: > Darren Dale <[EMAIL PROTECTED]> writes: > >> I'm stuck. I'm trying to make this: >> >> file://C:%5Cfolder1%5Cfolder2%5Cmydoc1.pdf,file://C >> %5Cfolderx%5Cfoldery%5Cmydoc2.pdf >> >> (no linebreaks) look like this: >> >> ./mydoc1.pdf,./mydoc2.pdf >> >> my regular expression abilities are dismal. > > This works for the example string you gave: > > newstring = re.sub(r'[^,]*%5[Cc]', './', examplestring) > > This replaces all instances of zero or more non-commas that are > followed by '%5C' or '%5c' with './'. Greediness causes the pattern > to replace everything up to the last '%5C' before a comma or the > end of the string. > > Regular expressions aren't the only way to do what you want. Python > has standard modules for parsing URLs and file paths -- take a look > at urlparse, urllib/urllib2, and os.path. >
Thanks to both of you. I thought re's were appropriate because the string I gave is buried in an xml file. A more representative example is: [...snip...]<url>file://C:%5Cfolder1%5Cfolder2%5Cmydoc1.pdf</url>[...snip... data]<url>file://C%5Cfolderx%5Cfoldery%5Cmydoc2.pdf</url>[...snip...] -- http://mail.python.org/mailman/listinfo/python-list