2012-01-24 11 views
5

he el siguiente código que funciona en Python 2.7:Python expresiones regulares insensibles caso dividir en 2,6

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

que necesito para que funcione en Python 2.6, así como en Python 2.7 y 2.6 re.split doesn' t aceptar un indicador (re.IGNORECASE) como parámetro siguiente. ¿Alguna ayuda? Gracias

Respuesta

12

Usted puede añadir a la expresión regular para que sea sensible a mayúsculas:

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

Oh, encontramos por mí mismo, puedo compilarlo a un objeto Regex: (? I)

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

Crea un re.RegexObject usando re.compile() y luego llama al método split().

Ejemplo:

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