Python 正则表达式在 2.6 中不区分大小写的分割
我有一段在Python 2.7中能正常运行的代码:
entry_regex = '(' + search_string + ')'
entry_split = re.split(entry_regex, row, 1, re.IGNORECASE)
我需要让它在Python 2.6和2.7中都能工作,但在Python 2.6中,re.split这个函数不支持第四个参数(re.IGNORECASE)。有没有什么办法可以解决这个问题?谢谢!
3 个回答
0
哦,我自己找到了,可以把它编译成一个正则表达式对象:
entry_regex = re.compile('(' + search_string + ')', re.IGNORECASE)
entry_split = entry_regex.split(row, 1)
3
使用 re.compile()
创建一个 re.RegexObject
对象,然后调用它的 split()
方法。
示例:
>>> re.compile('XYZ', re.IGNORECASE).split('fooxyzbar')
['foo', 'bar']
15
你只需要在正则表达式前面加上 (?i) 就可以让它不区分大小写了:
>>> import re
>>> reg = "(foo)(?i)"
>>> re.split(reg, "fOO1foo2FOO3")
['', 'fOO', '1', 'foo', '2', 'FOO', '3']