Νίκος wrote:
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.

No. That regex means that it should match:

    <?        # optional '<'
    (.*?)?    # optional group of any number of any characters
    >         # '>'
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to