Expresiones regulares
Roylan Suarez Reyes
roylan04012 en pri.jovenclub.cu
Sab Feb 24 15:19:54 CET 2007
On Saturday 24 February 2007 03:50 pm, Marcelo wrote:
> El sáb, 24-02-2007 a las 08:55 +0000, Roylan Suarez Reyes escribió:
> > On Saturday 24 February 2007 01:36 pm, Arnau Sanchez wrote:
> > > Roylan Suarez Reyes escribió:
> > > > Hola colegas
> > > >
> > > > Soy nuevo en esta lista, acabo de subscribirme y estoy trabajando
> > > > con expresiones regulares...
> > > >
> > > > Estoy desarrollando una aplicacion que trabaja sobre las trazas de
> > > > squid, (proxy)y mu problema es el siguiente....
> > > >
> > > > yo estoy buscando la palabraL: computa
> > > > pero cuando esta de la siguiente forma /computa%% no me la
> > > > encuentra... he probado muchas formas con las expresiones regualres y
> > > > ninguna me funciona... Agradeceria que alguien me ayudara en tal
> > > > sentido...
> > >
> > > ¿algunos ejemplos de lo que intentas?
> >
> > 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....
> >
> > Gracias
>
> Hola Roylan, la cosa era mas complicada de lo que parecía. Lo que vi es
> que si reemplazo la " dentro de la cadena trazas por \" anda. Es como
> que el problema esta en la cadena y no en la palabra buscada.
> Probablemente trazas se corte antes del "GET por eso no lo encuentra.
>
> Espero que esto sirva.
>
> Saludos
Gracias a todos, ya resolvi el problema y lo esta haciendo requete bien,
quiero compartir con ustedes la funciona que elabore y comentarle algunas
lineas...
##########################################################################################################
1def BuscaLB(listablanca, trazas):
2 lista = []
3 lista = listablanca #Creamos la lista nuevamente
4 "Comprobar que la traza no este en la LB"
5 for contador2 in range(0, len(lista[:])):#Probamos con LB
6 patronblanco = re.compile('.'+lista[contador2]+'.', re.IGNORECASE)
7 if (patronblanco.search(trazas)):
8 return False #Esta en lista Blanca, No Guardaar
9
10 return True
1. Aqui paso como argumentos 'listablanca' que es una lista de x elementos
2. Aqui creo una nueva lista, porque la lista que paso como argumento desde
otra funcion que hace la llamada, no se comporta como lista, y no se como
pasar una lista con sus argumentos...
3. Le asigno el contenido a la nueva lista
5. Este ciclo prueba con cada uno de los elementos de la lista
6. Creo un patron de busqueda. este patron lo elabore asi porque por ejemplo,
en mi aplicacion yo estoy buscando palabar como puta, pene, etc. dentro del
fichero de las trazas de internet pero hay palabras como "computadora" que no
las deseo incluie, entonces en la lista que paso como argumento tengo
palabras como "computa" que conincide con muchas de su tipo (computadora,
computadoras, computar, etc...)
7. Comprobar el patron de busqueda
8 Retornar el valor de False el cual es evaluado por la funcion llamadora y en
dependencia de ello llama a otra funcion.
10 Si no hay ninguna coincidencia con listablanca, devuelbe True
UFFFFFFFF, que lata, weno, les comento esto pora que me den su opinion, soy
novato en python y en programacion.... a ver si quizas exista otra estrategia
mas rapida....
salu2
roylan
--
---
Roylan Suarez Reyes
Admin Redes JCCE Vinales
Telef 793210
roylan04012 en pri.jovenclub.cu
Más información sobre la lista de distribución Python-es