Foros del Web » Programando para Internet » PHP »

Ayuda con expresiones regulares al parsear HTML

Estas en el tema de Ayuda con expresiones regulares al parsear HTML en el foro de PHP en Foros del Web. Hola gente como están? Hace 1 semana que me estoy rompiendo la cabeza con las expresiones regulares en PHP. Para colmo nunca las entendi bien ...
  #1 (permalink)  
Antiguo 05/03/2011, 01:13
 
Fecha de Ingreso: enero-2008
Mensajes: 3
Antigüedad: 16 años, 3 meses
Puntos: 0
Ayuda con expresiones regulares al parsear HTML

Hola gente como están? Hace 1 semana que me estoy rompiendo la cabeza con las expresiones regulares en PHP. Para colmo nunca las entendi bien y me cuestan muchísimo...

Para un trabajo de facultad tengo que extraer el NOMBRE y el LINK de cada AUTOR en varias paginas HTML (de un catalogo online de libros):

Código HTML:
<p class="Entrada">

AUTORES:

<a href="URL AL AUTOR1">NOMBRE DEL AUTOR1</a>, 
<a href="URL AL AUTOR2">NOMBRE DEL AUTOR2</a>,
<a href="URL AL AUTOR3">NOMBRE DEL AUTOR3</a>.

</p> 
Lo que tengo que haces es conseguir un Array Multidimensional con los resultados:
Código:
Array
(
    [0] => Array
        (
            [0] => http://www.autor1.com 
            [1] => http://www.autor2.com
            [2] => http://www.autor3.com
        )
 
    [1] => Array
        (
            [0] => NOMBRE AUTOR1
            [1] => NOMBRE AUTOR2
            [2] => NOMBRE AUTOR3
        )
 
)
Para lograr eso utilizaria la función preg_match_all, el unico problema es que no logro dar con el pattern adecuado, por ahora estoy intentando con este pero me tira la URL con las tags y 1 solo nombre:

Código:
$pattern = "#\<a href\=\".*\"\>(.*?)\<\/a\>#";
El pattern tendría que funcionar que empezar a buscar cuando aparezca "<p class="Entrada">AUTORES:" (Ya que hay mas <p class="Entrada"> en la web) y dentro de cada "<a>", las que terminan con , y . (para la ultima entrada)

Si me pudieran dar algún indicio de como corregir el pattern se los agradeceria mucho!

Saludos
  #2 (permalink)  
Antiguo 05/03/2011, 10:43
 
Fecha de Ingreso: mayo-2010
Mensajes: 84
Antigüedad: 13 años, 10 meses
Puntos: 6
Respuesta: Ayuda con expresiones regulares al parsear HTML

Hola,
Prueba esta:
$pattern = "/\<a href\=\"[A-Za-z0-9\s ]+\"\>[A-Za-z0-9\s]+\<\/a\>/";

No haz probado hacer un preg_split()?

Un saludo..

Etiquetas: espresiones, html, parsear, patrones, patterns, regulares
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:37.