2012-01-24 15 views
5

Ho il seguente codice che funziona in Python 2.7:Python regex caso dividere insensibile a 2.6

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

ho bisogno di farlo funzionare in Python 2.6, così come in Python 2.7 e 2.6 re.split doesn' t accettare un flag (re.IGNORASE) come quarto parametro. Qualsiasi aiuto? Grazie

risposta

12

Si può solo aggiungere l'espressione regolare per renderlo case insensitive:

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

Oh, l'ho trovato da solo, posso compilarlo a un oggetto Regex: (? I)

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

Creare un re.RegexObject utilizzando re.compile() e quindi chiamare il metodo split().

Esempio:

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