Python 2.4.3 (#2, Oct 6 2006, 07:52:30)
[GCC 4.0.3 (Ubuntu 4.0.3-1ubuntu5)] on linux2
Tried:
>>> re.findall(r'(?!def)\b(\S+)\(', "def bla(): dof blu()")
>>> re.findall(r'(?:def){0}\b(\S+)\(', "def bla(): dof blu()")
Result:
['bla', 'blu']
Expected:
['blu']
Why doesn't (?!) work like it does here?:
>>> re.findall(r'\b(\S+): (?!bad)', "bob: bad; suzy: good")
['suzy']
Wouldn't it be nice if (^) worked?
>>> re.findall(r'\b(\S+): (^bad)', "bob: bad; suzy: good")
[]
[^()] does, sorta. Also not before a capture group:
>>> re.findall(r'\b(\S+): [^(bad)]', "bob: bad; suzy: good")
['suzy']
>>> re.findall(r'[^(def)]\b(\S+)\(', "def bla(): dof blu()")
['bla', 'blu']
>>> re.findall(r'[^(def)] (\S+)\(', "def bla(): dof blu()")
[]
>>> re.findall(r'(^def) (\S+)\(', "def bla(): dof blu()")
[('def', 'bla')]
|