Una expresión regular es una forma de describir un conjunto de cadenas de texto. En Python se debe llamar al modulo re para buscar o remplazar patrones de texto. La función que busca todas las coincidencias es re.findall(patrón,texto,marcador). He aquí algunos ejemplos:
|
import re
print re.findall('reg','expresion regular')
print re.findall('201\d','2008, 2009, 2010, 2011')
print re.findall('\w+','expresion regular')
|
Salida:
|
['reg']
['2010', '2011']
['expresion', 'regular']
|
|
El patrón '\w+' corresponde a cualquier cantidad de letras sin incluir espacios vacíos. '201\d' corresponde a un número de cuatro cifras que comienza con 201. Más información acerca de expresiones regulares se puede encontrar en los siguientes vínculos:
En inglés es suficiente la codificación ASCII, pero en español para representar la eñe y las tildes es necesario la codificación Unicode. En un archivo Python hay que declarar Unicode al comienzo de la siguiente forma:
En el siguiente ejemplo todavía no se reconoce la ó como una letra válida:
# -*- coding: UTF-8 -*-
import re
print re.findall('\w+','expresión regular')
|
Salida:
|
['expresi', 'n', 'regular']
|
De modo que especificamos el marcador (flag) re.UNICODE para que se tengan en cuenta los caracteres Unicode:
# -*- coding: UTF-8 -*-
import re
print re.findall('\w+','expresión regular',re.UNICODE)
|
Salida:
|
['expresi\xc3\xb3n', 'regular']
|
La ó aparece con su código Unicode, pero aparece normalmente con la función print:
lista = re.findall('\w+','expresión regular',re.UNICODE)
print lista
for item in lista:
print item
|
Salida:
|
['expresi\xc3\xb3n', 'regular']
expresión
regular
|
No hay comentarios.:
Publicar un comentario