Foros del Web » Programando para Internet » PHP »

expresiones regulares una pavada

Estas en el tema de expresiones regulares una pavada en el foro de PHP en Foros del Web. Alguien sabe como puedo resolver este problema de expresiones regulares? Tengo que encontrar esta imagen de un html <p style="text-align: center;"><img src="imagen.jpg" alt="" /> </p> ...
  #1 (permalink)  
Antiguo 10/11/2010, 09:50
 
Fecha de Ingreso: noviembre-2006
Mensajes: 169
Antigüedad: 16 años
Puntos: 0
Información expresiones regulares una pavada

Alguien sabe como puedo resolver este problema de expresiones regulares?

Tengo que encontrar esta imagen de un html

<p style="text-align: center;"><img src="imagen.jpg" alt="" /> </p>

y para extrar este codigo uso el siguiente patron

$parser[]="/<p style=\"text-align: center;\"\><img src=\"imagen \.(?:jpg|gif|png)\" alt=\"\" \/\>\<\/p\>/is";

bien en teoría tendría que funcionar pero no lo hace por un solo detalle el cual es ínfimo, como podrán ver el codigo de la imagen termina asi:

alt="" /> </p>

y entre esto /> y esto </p> hay un espacio

miren: alt="" /> </p>

Y por eso no me funciona…

Si yo pongo el codigo asi de forma manual alt="" /></p> (sin espacio) va bien… pero si no, no funciona

Alguien sabe como puedo hacer para que si hay espacios entre medio de estas etiquetas me las tome lo mismo. Osea que me funcione cuando tengo cosa asi

<p style="text-align: center;"> <img src="imagen.jpg" alt="" /> </p>

que solo tome espacios y no otras cosas como caracteres o cosas asi ya que podria estar asi

<p style="text-align: center;"><img src="imagen.jpg" alt="" />Estono</p>
  #2 (permalink)  
Antiguo 10/11/2010, 10:28
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 17 años, 7 meses
Puntos: 839
Respuesta: expresiones regulares una pavada

Podrías usar \s* para indicar que puede haber cualquier cantidad de espacios.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 10/11/2010, 11:03
 
Fecha de Ingreso: noviembre-2006
Mensajes: 169
Antigüedad: 16 años
Puntos: 0
Respuesta: expresiones regulares una pavada

Asi tendria que quedar?

$parser[]="/<p style=\"text-align: center;\"\><img src=\"imagen \.(?:jpg|gif|png)\" alt=\"\" \/\>\s*\<\/p\>/is";

?
  #4 (permalink)  
Antiguo 10/11/2010, 12:43
 
Fecha de Ingreso: noviembre-2006
Mensajes: 169
Antigüedad: 16 años
Puntos: 0
Respuesta: expresiones regulares una pavada

Esta bien puesto esto?

$parser[]="/<p style=\"text-align: center;\"\>\s*<img src=\"img\.(?:jpg|gif|png)\" alt=\"\" \/\>\s*<\/p\>/is";

porque no logro que funcione
  #5 (permalink)  
Antiguo 10/11/2010, 19:23
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 17 años, 7 meses
Puntos: 839
Respuesta: expresiones regulares una pavada

Es correcto ese último que pusiste, con la excepción de que debería ser imagen y no img según lo que quieres capturar.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #6 (permalink)  
Antiguo 10/11/2010, 21:00
 
Fecha de Ingreso: noviembre-2006
Mensajes: 169
Antigüedad: 16 años
Puntos: 0
Respuesta: expresiones regulares una pavada

Si lo de img no tiene importancia, en realidad la url es mas larga por lo que solo la resumi...

pregunta... tu sabes como hacer si en ves de una espacion puedo tener...

espacio, <br> o <strong>

?
  #7 (permalink)  
Antiguo 11/11/2010, 04:46
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 17 años, 7 meses
Puntos: 839
Respuesta: expresiones regulares una pavada

Podría ser: \s*(?:<br>|<strong>)?\s*
Lee esto: http://www.forosdelweb.com/f18/aport...s-pcre-646110/
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.

Etiquetas: expresiones, 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 06:26.