Extracción de datos por expresión regular

Quiero extraer datos que están en la siguiente forma:

<div class="image"><a href="[Any Chacter]">  

Tengo los datos hasta <div class="image"> pero después de eso ningún resultado. Este es mi código:

$tag_regex='/<div class="image">/';
preg_match_all($tag_regex,$xml,$matches);

return $matches[0];

preguntado el 03 de mayo de 12 a las 17:05

¡Bienvenido a Stack Overflow! Absténgase de analizar HTML con RegEx, ya que lo hará volverte loco. Utilice un Analizador de HTML en lugar de. -

Tim cooper: -Gracias, no sé nada sobre el análisis de HTML que puede hacer la extracción... Pero para el proceso de aprendizaje parece interesante. :) Pero para completar mi práctica lo necesito a través de REgex :( -

2 Respuestas

Tal como dijo Truth en su comentario, la forma correcta de extraer datos de html es un analizador html.

Sin embargo, su caso es simple y podría resolverse fácil y rápidamente con una expresión regular:

$tag_regex= '<div class="image"><a href=".*">';
preg_match_all($tag_regex,$xml,$matches);

return $matches[0];

contestado el 03 de mayo de 12 a las 17:05

Tamer: Gracias Pero da la Advertencia de error: preg_match_all() [function.preg-match-all]: Modificador desconocido '<' en C:\wamp\www\curl\index.php en la línea 30 - Intekhab Kan

Las funciones PHP Regex requieren delimitadores. Ver mi respuesta para más detalles. - Fantasma de Madara

Me alegro de que esté abierto a aprender, y realmente espero que aprenda a usar un analizador HTML (como cualquier ser humano cuerdo).

Para la solución práctica de su problema:

$tag_regex= '|<div class="image"><a href="(.*)">|i';
preg_match_all($tag_regex,$xml,$matches);

return $matches[1]; //Will match what's in the first set of brackets, I.e the href.

Tenga en cuenta que este patrón no es robusto. No tiene en cuenta espacios, diferentes tipos de comillas, saltos de línea y muchas otras cosas. Un analizador HTML daría cuenta de todos ellos.

contestado el 03 de mayo de 12 a las 17:05

:-Busqué en todos los analizadores... encontré que Simple HTML DOM Parser es fácil de usar... Pero no puedo descargar... El enlace de descarga no se abre... ¿Hay algún otro analizador como Simple HTML DOM Parser? .. O hay otro enlace para descargar :) - Intekhab Kan

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.