Foro de elhacker.net

Programación => Programación General => Mensaje iniciado por: Kase en 13 Agosto 2012, 07:35 am



Título: exprecion regular.... n__n
Publicado por: Kase en 13 Agosto 2012, 07:35 am
tengo esta sencilla exprecion regular

Citar
r'^adoptar|se_busca|perdido/(\d+)/[-_A-Za-z0-9]*/$'


necesito que funciones asi

adopar/1/gatito
se_busca/2/perrito
perdido/4/cotorro

el problema es que solo funciona la ultima... por que no estan englobadas las opciones

Citar
r'^(adoptar|se_busca|perdido)/(\d+)/[-_A-Za-z0-9]*/$'

el poblema es que el metodo que recibe es un poco quisquilloso con los parametros... y si lo pongo entre parentesis se pasara como parametro, cuando no lo es.

asi que no se como engobar esas opciones.. ya probe con []  pero lo busca como caracteres..


Título: Re: exprecion regular.... n__n
Publicado por: leogtz en 13 Agosto 2012, 08:02 am
¿En qué las estás probando?

Acabo de probar las expresiones con el comando grep y funcionan:

cat ex.txt
adopar/1/gatito
se_busca/2/perrito
perdido/4/cotorro

Código:
[0 [00:02][leo@leo-Satellite-L305 Desktop]$ cat ex.txt | grep -E "^(adopar|se_busca|perdido)/[0-9]+/(gatito|perrito|cotorro)$"
adopar/1/gatito
se_busca/2/perrito
perdido/4/cotorro

PD: Es "expresión", no "exprecion".


Título: Re: exprecion regular.... n__n
Publicado por: Kase en 13 Agosto 2012, 10:33 am
o no la exprecion funciona!  (programo en python y django)

entonces tengo una lista de urls

url( r'^(adoptar|se_busca|perdido)/(\d+)/[-_A-Za-z0-9]*/$', buscador )


y un metodo

def buscador(request,id):
   pass


el problema es que en el metodo estoy reciviendo 1 parametro id  (el request, se pasa solo)
pero en la url  con esa exprecion estoy pasando 2 parametros..  (todo lo que este en parentesis se pasa como parametro)   entonces debo quitar los parensis  de  (adoptar|se_busca|perdido) para que se pase correctamente al metodo.

pero al quitarlos deja de funcionar.. XD

ahi una solucion simple que es cambiar el metodo

def buscador(request,tipo,id)   y no usar la variable tipo... 
es solo que no me gusta ese tipo de parches, y pefiero encontrar la forma correcta de la exprecion regular


Título: Re: exprecion regular.... n__n
Publicado por: sistemx en 19 Agosto 2012, 06:48 am

entonces tengo una lista de urls

Podrias pasarme una url como ejemplo?
Es para prober nada mas.