Foros del Web » Programando para Internet » PHP »

preg_match_all lio con expresiones regulares

Estas en el tema de preg_match_all lio con expresiones regulares en el foro de PHP en Foros del Web. Hola foreros! El caso es que nunca fui muy bueno con la expresiones regulares y ahora estoy intentando hacer una cosita y nada no hay ...
  #1 (permalink)  
Antiguo 26/04/2007, 15:03
Avatar de Maycol  
Fecha de Ingreso: diciembre-2001
Ubicación: Ávila (España)
Mensajes: 539
Antigüedad: 22 años, 3 meses
Puntos: 0
preg_match_all lio con expresiones regulares

Hola foreros!
El caso es que nunca fui muy bueno con la expresiones regulares y ahora estoy intentando hacer una cosita y nada no hay manera xD, a ver si me podéis echar una mano, os pongo en situación, tenemos una cadena $contents con tags <a> por ejemplo:
Código HTML:
<area href="pagina.php?s=23454325&p=9c" {...} ><area href="pagina.php?s=1242457&p=a3" {...} >...
Y bueno lo que quiero es sacar el valor de "s" y de "p" y bueno mi intento es este:

Código PHP:
preg_match_all('/<area href="pagina.php\\?s=([0-9]*?)&p=([[:alnum:]]*?)" .*>/i'$contents$valores); 
Y bueno no lo acabo de conseguir, con este código saca la primera coincidencia, siempre me peleo con las expresiones regulares... un buen manual de paso no estaría mal ;).

Saludos y gracias.
__________________
Zepsilon.com
Diseño e imaginacion
  #2 (permalink)  
Antiguo 26/04/2007, 16:25
Avatar de Maycol  
Fecha de Ingreso: diciembre-2001
Ubicación: Ávila (España)
Mensajes: 539
Antigüedad: 22 años, 3 meses
Puntos: 0
Re: preg_match_all lio con expresiones regulares

Hola!
Me parece que lo que conseguido arreglar dejándolo asi:
Código PHP:
preg_match_all('/<area href="pagina.php\\?s=([0-9]*?)&p=([[:alnum:]]*?)"[^>]*>/i'$contents$valores); 
Lo que no entiendo es por que ahora encuentra todas y antes solo la primera... esto lo vi en un código similar probé y demás, pero bueno si podeis explicar el por que mucho mejor : ).

Saludos.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:26.