exprecion regular.... n__n

Iniciado por Kase, 13 Agosto 2012, 07:35 AM

0 Miembros y 1 Visitante están viendo este tema.

Kase

tengo esta sencilla exprecion regular

Citarr'^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

Citarr'^(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..

leogtz

#1
¿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

[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".
Código (perl) [Seleccionar]

(( 1 / 0 )) &> /dev/null || {
echo -e "stderrrrrrrrrrrrrrrrrrr";
}

http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com

Kase

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

sistemx

Cita de: Kase en 13 Agosto 2012, 10:33 AM

entonces tengo una lista de urls

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