¿Quieres registrarte?

Ayuda con expresión regular.

Citar            
MensajePublicado: 20 Feb 2010 09:27 pm
Hola a todos,

quería pedirles ayuda con una expresión regular.

Lo que pasa es que tengo un HTML con varios links, y necesito obtener todos los links que contengan cierta cadena
ej:

Código :

<?php

$s = '<a href="holamundo.php?parametro=valores">Hola mundo</a>';

preg_match('/<a href="([^"]+)">/',$s,$r);

?>


Con esto puedo obtener el link del html, pero ¿qué pasa si necesito sólo los links que tengan holamundo.php?

ej:

Código :

<?php
$s = '<a href="holamundo.php?parametro=valores">Hola mundo</a>';
$s.= '<a href="chaomundo.php?parametro=valores">Hola mundo</a>';
$s.= '<a href="holamundo.php?parametro=valores">Hola mundo</a>';
$s.= '<a href="chaomundo.php?parametro=valores">Hola mundo</a>';
?>


Aquí no sé cómo hacerlo. Creo que la solución es simple pero no la sé, uso mucho expresiones regulares en vi pero no me había tocado una situación como esta.

Muchas gracias por su ayuda.

w00p


clabLevel: 19



  firefox
MP    
Citar            
MensajePublicado: 20 Feb 2010 10:16 pm
asi?

Código :

<a href="holamundo.php([^"]+)">

tribak
Claber

Héroes
clabLevel: 1769 Genero:Masculino
Kokiri's forest


3 Tips

  firefox
MP   Email   Web
Citar            
MensajePublicado: 20 Feb 2010 10:57 pm
Gracias por responder.

Eso es correcto, pero se me olvidó agregar que el href puede tener o no tener http://. Ya sé que se podría hacer con condiciones y con loops, pero la idea era tomar la cadena html completa y hacerlo con una sola expresión regular.

De todos modos, al final lo hice con condiciones y loops, era un capricho saber cómo hacerlo con expresión regular.

Gracias de todas maneras.

w00p


clabLevel: 19



  firefox
MP    
Citar            
MensajePublicado: 20 Feb 2010 11:34 pm
no se si sea lo mas apropiado pero:

Código :

<a href="((http://)|(http://www.))?(([a-z]+).[a-z]{2,4})?(/)?holamundo.php([^"]+)">

tribak
Claber

Héroes
clabLevel: 1769 Genero:Masculino
Kokiri's forest


3 Tips

  firefox
MP   Email   Web
Citar            
MensajePublicado: 21 Feb 2010 08:56 pm
U_U no me gustaba y segui intentando, solo para registrarlo, este es el resultado:

Código :

<a href="((http://|http://www.)([a-z A-Z 0-9]+.[a-z]{2,4})/)?(([^/]+/)+)?holamundo.php([^"])+">

tribak
Claber

Héroes
clabLevel: 1769 Genero:Masculino
Kokiri's forest


3 Tips

  firefox
MP   Email   Web

   Página 1 de 1

Responder al tema
Respuesta Rapida


 

 

Cristalab BabyBlue + BloodBerry © 2007 Cristalab
Powered by phpBB © 2001, 2007 phpBB Group

3 6 7 8 10 11 12 14 15 17 18 28 34 38 40 44 45 46 47 48 49