Mat Mat - 5 months ago 15
Python Question

Case insensitive Python regular expression without re.compile

In Python, I can compile a regular expression to be case-insensitive using

re.compile
:

>>> s = 'TeSt'
>>> casesensitive = re.compile('test')
>>> ignorecase = re.compile('test', re.IGNORECASE)
>>>
>>> print casesensitive.match(s)
None
>>> print ignorecase.match(s)
<_sre.SRE_Match object at 0x02F0B608>


Is there a way to do the same, but without using
re.compile
. I can't find anything like Perl's
i
suffix (e.g.
m/test/i
) in the documentation.

Answer

Pass re.IGNORECASE to the flags param of search, match, or sub:

re.search('test', 'TeSt', re.IGNORECASE)
re.match('test', 'TeSt', re.IGNORECASE)
re.sub('test', 'xxxx', 'Testing', flags=re.IGNORECASE)