Comunidad de diseño web y desarrollo en internet online

Ayuda con expresión regular.

Citar            
MensajeEscrito el 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 :

<?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 :

<?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.

Por w00p

24 de clabLevel



 

firefox
Citar            
MensajeEscrito el 20 Feb 2010 10:16 pm
asi?

Código :

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

Por tribak

Claber

2448 de clabLevel

6 tutoriales

Genero:Masculino   Héroes

Fotógrafo o algo

firefox
Citar            
MensajeEscrito el 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.

Por w00p

24 de clabLevel



 

firefox
Citar            
MensajeEscrito el 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([^"]+)">

Por tribak

Claber

2448 de clabLevel

6 tutoriales

Genero:Masculino   Héroes

Fotógrafo o algo

firefox
Citar            
MensajeEscrito el 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([^"])+">

Por tribak

Claber

2448 de clabLevel

6 tutoriales

Genero:Masculino   Héroes

Fotógrafo o algo

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.