есть 3 шаблона регулярных выражений, как показано ниже.
r1=re.compile(r"""
# com
abc
# tehis
\s+\d+
""", re.S|re.X)
r2=re.compile(r"""
# com
abc
# tehis
\s+\d+
""", re.S+re.X)
r3=re.compile(r"""
# com
abc
# tehis
\s+\d+
""", re.S&re.X)
и строка для сопоставления аналогична.
>>> s
'abc\n 899'
результат поиска и соответствия показан ниже.
>>> s
'abc\n 899'
>>> r1.findall(s)
['abc\n 899']
>>> r2.findall(s)
['abc\n 899']
>>> r3.findall(s)
[]
мы видим, что r3 соответствует неудачно, а r1 и r2 успешно. Так в чем же разница между различными операторами при использовании нескольких re.FLAGS?