Python正则表达式在2.6中不区分大小写

时间:2012-01-24 20:46:51

标签: python regex

我有以下代码在Python 2.7中运行:

entry_regex = '(' + search_string + ')'
entry_split = re.split(entry_regex, row, 1, re.IGNORECASE)

我需要在Python 2.6以及Python 2.7和2.6中使用它.re.split不接受标志(re.IGNORECASE)作为第四个参数。有帮助吗?感谢

3 个答案:

答案 0 :(得分:12)

您只需将(?i)添加到正则表达式即可使其不区分大小写:

>>> import re
>>> reg = "(foo)(?i)"
>>> re.split(reg, "fOO1foo2FOO3")
['', 'fOO', '1', 'foo', '2', 'FOO', '3']

答案 1 :(得分:3)

使用re.RegexObject创建re.compile(),然后将其称为split()方法。

示例:

>>> re.compile('XYZ', re.IGNORECASE).split('fooxyzbar')
['foo', 'bar']

答案 2 :(得分:0)

哦,我自己找到了,我可以把它编译成Regex对象:

entry_regex = re.compile('(' + search_string + ')', re.IGNORECASE)
entry_split = entry_regex.split(row, 1)