在Python中,我可以使用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>
有没有一种方法可以做同样的事情,但不使用re.compile
。我在文档中找不到任何类似Perl的i
后缀(例如m/test/i
)。
发布于 2009-02-01 14:01:10
发布于 2012-05-04 15:05:39
您还可以使用不带IGNORECASE标志的search/match执行不区分大小写的搜索(在Python 2.7.3中经过测试):
re.search(r'(?i)test', 'TeSt').group() ## returns 'TeSt'
re.match(r'(?i)test', 'TeSt').group() ## returns 'TeSt'
发布于 2017-02-23 11:43:42
不区分大小写的标记(?i)
可以直接合并到正则表达式模式中:
>>> import re
>>> s = 'This is one Test, another TEST, and another test.'
>>> re.findall('(?i)test', s)
['Test', 'TEST', 'test']
https://stackoverflow.com/questions/500864
复制相似问题