2012-01-24 10 views
5

Mam następujący kod, który działa w Pythonie 2.7:Python regex podzielić wielkość liter ma znaczenie w 2,6

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

muszę, aby pracować w Pythonie 2.6, jak również w Pythonie 2.7 i 2.6 re.split robi” t zaakceptuj flagę (re.IGNORECASE), jak w przypadku parametru czwartego. Jakaś pomoc? Dzięki

Odpowiedz

12

Można tylko dodać do wyrażenia regularnego, aby to przypadek niewrażliwe:

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

Och, znaleziono go przez siebie, mogę go skompilować do regex obiektu: (? I)

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

Utwórz re.RegexObject za pomocą re.compile(), a następnie wywołaj metodę split().

przykład:

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