Veamos un ejemplo de uso.
#!/usr/bin/python
import re;
cadena_larga="esto es una cadena muy larga";
if(re.search("cadena", cadena_larga)):
print "caso 1: presente";
else:
print "caso 1: ausente";
if(re.search("ca.ena", cadena_larga)):
print "caso 2: presente";
else:
print "caso 2: ausente";
if(re.search("\s.\s|\s..\s", cadena_larga)):
print "caso 3: presente";
else:
print "caso 3: ausente";
if(re.search("[0-9]", cadena_larga)):
print "caso 4: presente";
else:
print "caso 4: ausente";
if(re.search("[^0-9]", cadena_larga)):
print "caso 5: presente";
else:
print "caso 5: ausente";
if(re.search("ga$", cadena_larga)):
print "caso 6: presente";
else:
print "caso 6: ausente";
En estos ejemplos se está usando el método search, search busca coincidencias en toda la cadena. También existe match que tan solo busca coincidencias desde el principio de la cadena.
El primer ejemplo es el más sencillo, se busca la subcadena "cadena" dentro del texto.
En el segundo se introduce el uso del operador ".", que equivale a cualquier carácter.
En el tercer ejemplo se reúne el OR de dos consultas, palabras de un carácter con espacios a los dos lados y palabras con dos caracteres.
En el cuarto se busca cualquier número que haya en la cadena.
En el quinto justo lo contrario que en el cuarto, la ausencia de números.
En el sexto ejemplo se comprueba si la cadena termina con los caracteres "ga", para comprobar el comienzo de la cadena se usa "^".
Las expresiones regulares no son muy útiles si no podemos recuperar subcadenas de los textos que tratamos, se hace de la siguiente forma.
#!/usr/bin/python
import re;
cadena_larga="esto es una cadena muy larga";
parsed=re.search("(\S+)\s",cadena_larga);
print parsed.groups();
print re.findall("(\S+)\s",cadena_larga);
En el caso de usar search buscamos las primera palabra seguida de espacio, en el caso de findall se devuelve una lista con todas las coincidencias.
0 comentarios:
Publicar un comentario