Ver Mensaje Individual
  #17 (permalink)  
Antiguo 05/12/2009, 05:07
Avatar de Dundee
Dundee
 
Fecha de Ingreso: junio-2002
Ubicación: El Médano
Mensajes: 1.310
Antigüedad: 21 años, 10 meses
Puntos: 8
De acuerdo Respuesta: ayuda aprendiendo expresiones regulares

Cita:
Iniciado por pateketrueke Ver Mensaje
al delimitar con ^ y $ quiere decir que la cadena a comparar debes ser precisa, que empiece y termine tal cual dicta la expresión... lo cual, en tu caso es erróneo

si buscas solo enlaces, buscar por href me pareció mas correcto
Gracias Pateketrueke lo he mejorado un poquillo
$res=preg_match_all('/href="([^" | ^\']+)"/isU',file_get_contents($url),$retorno);

Pero aún así necesito que me devuelva los enlaces que quiero no todos, es decir los enlaces que por ejemplo lleven la palabra "casa" , tipo:
http`://www.loquesea/unacosamas/casa/
Por muchas vueltas que doy no se como narices hacerlo.

He probado también así:
$res=preg_match_all('/href="([^" | ^\']+)\/casa\/"/isU',file_get_contents($url),$retorno);
Pero nada de nada , me devuelve un array vacío totalmente.


Tampoco entiendo el significado de la U ¿codicia? ¿que es eso?.
# U - Modificador que invierte la codicia de las expresiones regulares.
Fuente:
http://www.php-hispano.net/archivos/...egulares1.html

Haciendo esto consigo todas las urls de una página:
$res=preg_match_all('/href="([^" | ^\']+)\/casa\/(.+)"/isU',file_get_contents($url),$retorno);

Pero ahora me gustaría poder filtrar los resultados de una vez lo máximo posible para optimizar el tema y que no recoja todas sino las que lleven como antes decía la palabra "casa", por que lo que no comprendo es porque además de devolverme dichos enlaces (los que tienen la palabra casa), me devuelve otros muchos strings, es como si los cortara y me los devolviera enteros los enlaces y cortados, por ejemplo:
href="http://www.miweb.com/casa/5-plantas/" y también me devuelve 5-plantas/, si yo ahora qusiera que no me devolviera esto último 5-plantas/ ¿como tendría que esribir la expresión regular?. Por otro lado también me devuelve el href , pero supongo que esto tedré que eliminarlo con funciones de strings de PHP ¿o se puede decir que no me lo devuelve también en la expresión regular?

Esto de las expresiones regulares está claro que necesita mucha práctica , por eso quiero hacer ejercicios hasta hartarme.

Un saludo y gracias .
__________________
Videotutoriales de Drupal

Última edición por Dundee; 05/12/2009 a las 05:45 Razón: ampliar el post