Foros del Web » Programando para Internet » PHP »

duda sobre expresiones regulares

Estas en el tema de duda sobre expresiones regulares en el foro de PHP en Foros del Web. Hola, estoy extrayendo datos buscando los siguientes parámetros (un ejemplo): /<a href="(.*?)"[[:space:]]class="titol[[:alnum:]]{1,12}">(.*?)<\/a>****<span class="entradetaGranNoticia">(.*?)<\/span>/ Lo hace bien quitando lo que hay a partir de ****, ya ...
  #1 (permalink)  
Antiguo 06/03/2006, 05:40
Avatar de yampoo  
Fecha de Ingreso: noviembre-2001
Ubicación: Vilanova i la Geltrú
Mensajes: 1.942
Antigüedad: 16 años
Puntos: 0
duda sobre expresiones regulares

Hola, estoy extrayendo datos buscando los siguientes parámetros (un ejemplo):

/<a href="(.*?)"[[:space:]]class="titol[[:alnum:]]{1,12}">(.*?)<\/a>****<span class="entradetaGranNoticia">(.*?)<\/span>/

Lo hace bien quitando lo que hay a partir de ****, ya que ahí hay varios caracteres, espacios... hasta llegar al <span class...>, que expresión se usa para cualquier cosa dando igual la longitud y demás.

Gracias.
  #2 (permalink)  
Antiguo 13/03/2006, 12:24
Avatar de nosoynadie  
Fecha de Ingreso: noviembre-2005
Ubicación: dando vueltas por aquí
Mensajes: 206
Antigüedad: 12 años
Puntos: 1
Hola,

si no he entendido mal, lo que quieres hacer es capturar lo que hay entre el cierre del enlace (tag </a>) y en comienzo del <span class ...>.

sobre esta base, por qué no modificas tu patrón para sólo coger esa parte del texto. Pudes probar algo así:
Código PHP:
$texto "<a href='nose.com' class='hola'> textto antes <span class=''>dentro span</span>";
$pat '/>([^<]*)<span/';
preg_match($pat$texto$salida);
echo 
"<textarea rows='5' cols='30'>";
print_r($salida);
echo 
"</textarea>"
como verás, en $salida[1] tienes el texto que buscas.

P.D. sé que se puede hacer mucho mejor la expresión para sacar lo que deseas pero esto de las expresiones regulares no es lo mio, estoy empezando con ellas y no las tengo muy controladas
__________________
http://www.nosoynadie.net/
  #3 (permalink)  
Antiguo 13/03/2006, 12:34
Avatar de Lord of freaks  
Fecha de Ingreso: octubre-2004
Ubicación: Madrid
Mensajes: 334
Antigüedad: 13 años, 2 meses
Puntos: 2
Ya que estás no me podías decira mi para capturar entre <p> y </p>

Un saludo
__________________
Una vez un elemental de rayos mató una tribu entera de tritones.

¡¡ El sólo quería darse un baño !!

http://www.frikilandia.com

Neither Fu Nor Fa
  #4 (permalink)  
Antiguo 13/03/2006, 12:43
Avatar de nosoynadie  
Fecha de Ingreso: noviembre-2005
Ubicación: dando vueltas por aquí
Mensajes: 206
Antigüedad: 12 años
Puntos: 1
Cita:
Iniciado por Lord of freaks
Ya que estás no me podías decira mi para capturar entre <p> y </p>
hola, prueba con este patrón
Código PHP:
$mi_pat '/<p>([^<]*)<\/p>/'
recordad, que siempre es mejorable Ciao
__________________
http://www.nosoynadie.net/
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 08:11.