pythonregexcase-sensitivecase-insensitive

Case insensitive 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.


Solution

  • 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)