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.

Answer rating: 696

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)

Answer rating: 66

The case-insensitive marker, (?i) can be incorporated directly into the regex pattern:

>>> import re
>>> s = "This is one Test, another TEST, and another test."
>>> re.findall("(?i)test", s)
["Test", "TEST", "test"]




Get Solution for free from DataCamp guru