On 9 Αύγ, 16:52, MRAB <pyt...@mrabarnett.plus.com> wrote: > Νίκος wrote: > > On 8 Αύγ, 17:59, Thomas Jollans <tho...@jollans.com> wrote: > > >> Two problems here: > > >> str.replace doesn't use regular expressions. You'll have to use the re > >> module to use regexps. (the re.sub function to be precise) > > >> '.' matches a single character. Any character, but only one. > >> '.*' matches as many characters as possible. This is not what you want, > >> since it will match everything between the *first* <? and the *last* ?>. > >> You want non-greedy matching. > > >> '.*?' is the same thing, without the greed. > > > Thanks you, > > > So i guess this needs to be written as: > > > src_data = re.sub( '<?(.*?)?>', '', src_data ) > > In a regex '?' is a special character, so if you want a literal '?' you > need to escape it. Therefore: > > src_data = re.sub(r'<\?(.*?)\?>', '', src_data)
i see, or perhaps even this: src_data = re.sub(r'<?(.*?)?>', '', src_data) maybe it works here as well. -- http://mail.python.org/mailman/listinfo/python-list