Expresiones regulares

aNgel rEsendiz g. sonajadiabolica en gmail.com
Sab Feb 24 16:42:55 CET 2007


> def BuscaLB(listablanca, trazas):
>         "Comprobar que la traza no este en la LB"
>         for contador2 in range(0, len(listablanca[:-1])):#Probamos con LB
>                 patronblanco = re.compile("\*"+listablanca[contador2]+".*", re.IGNORECASE)
>                 if (patronblanco.search(trazas)):
>                         return False
>                 else:
>                         return True
>
> "listablanca" es una lista con una serie de palabras a probar en "trazas",
> esta contiene la cadena de squid donde realizare la busqueda... Lo que quiero
> es que por ejemplo:
>
> trazas contiene: 172.16.7.2 - - [08/Jan/2007:15:25:02 +0000] "GET
> http://www.unicrom.com/Images/computadoras.gif HTTP/1.1" 403 1536 TCP_NEGA:
>
> listablanca: ['computa', 'articulo', 'sexologia', 'etc...']
>
> en el caso en que computadora no tiene / y . al final si lo detecta pero en
> este caso no...
>
>
> UFFFF que enrredo....
>

Si, la verdad no acabo de entender al 100 lo que quieres hacer, pero
por lo que escribes, me da la impresión de que se debe a que los
caracteres con los que tienes problemas son caracteres de escape, o
que significan algo especial dentro de la busqueda de una expresión
regular, entonces, tienes que "escaparlos". Tal vez te sirva asignar
el valor de taza de esta forma (con una r a la izq del valor):

taza =r"""172.16.7.2 - - [08/Jan/2007:15:25:02 +0000] "GET
http://www.unicrom.com/Images/computadoras.gif HTTP/1.1" 403 1536 TCP_NEGA:"""

Estoy casi seguro de que tiene que ver con esos caracteres de escape,
si no te sirve este metodo, dinos como asignas esa variable taza.

Saludos.

-- 
aNgel rEsendiz.!




Más información sobre la lista de distribución Python-es