In article <[EMAIL PROTECTED]>, Schüle Daniel <[EMAIL PROTECTED]> wrote: >Hello, > >consider the following code > > >>> re.search("[a-z](?i)[a-z]","AA") ><_sre.SRE_Match object at 0x40177e20> > >this gives a match >if we provide an extra group for the first character it still works > > >>> re.search("([a-z])(?i)[a-z]","AA").group(1) >'A' > >>> > >it doesn't matter where (?i) is placed, right? >the re engine would glance at once on the entire pattern string >analize it (complain if pattern doesn't make sense, eg invalid) >and it would be the same as if the option was given expicitely >as re.IGNORECASE. > >Is there a way to switch-off the option resp. >switch-on the option in the middle of the pattern?
The docs say: (?iLmsux) (One or more letters from the set "i", "L", "m", "s", "u", "x".) The group matches the empty string; the letters set the corresponding flags (re.I, re.L, re.M, re.S, re.U, re.X) for the ^^^^^^^ entire regular expression. This is useful if you wish to include ^^^^^^^^^^^^^^^^^^^^^^^^^ the flags as part of the regular expression, instead of passing a flag argument to the compile() function. Some regex packages, but not Python's, support (?-<flag>) and this allows turning the flag off and on for parts of the regex. -- Jim Segrave ([EMAIL PROTECTED])
-- http://mail.python.org/mailman/listinfo/python-list