Foros del Web » Programando para Internet » PHP »

Modificador de contexto expresion regular

Estas en el tema de Modificador de contexto expresion regular en el foro de PHP en Foros del Web. Hola gente, escribo para saber si alguien puede echarme una mano con una cuestion que estoy teniendo con una expresion regular. Esto es bastante pavote, ...
  #1 (permalink)  
Antiguo 18/04/2010, 20:26
 
Fecha de Ingreso: agosto-2005
Mensajes: 11
Antigüedad: 18 años, 8 meses
Puntos: 0
Modificador de contexto expresion regular

Hola gente, escribo para saber si alguien puede echarme una mano con una cuestion que estoy teniendo con una expresion regular. Esto es bastante pavote, lo que pasa es que realmente, el tema expresiones regulares es una materia pendiente para mi, y cada pavadita me cuesta un monton.

La cuestión es la siguiente. Tengo un script que lee un html de un sitio web, en la pagina que leo hay una tabla que necesito extraer para luego almacenarla en otra variable. La tabla siempre tiene este formato:

Código HTML:
<table width="640" border="0">
  <tr><td>.....</td></tr>
   ......
</table> 
Este html es multilinea. Yo estoy intentando usar lo siguiente para poder obtener esa tabla, pero sin exito alguno:

Código PHP:
preg_match('|<table width="640" border="0">.*?<\/table>|s',$htmlFinal,$dat); 
Donde $htmlFinal tiene todo el codigo html. Al hacer un print_r($dat), este siempre esta vacio. He intentado varias posibilidades pero ninguna me funciono. El problema lo tengo con el "s" para hacer que el . lea tambien los \n, ya que he intentado poner un pedazo del html escrito a mano en una sola linea sin saltos y funcionó.

Se que podria reemplazar todos los saltos de linea del html para que quede todo en una linea, pero me gustaria saber que estoy haciendo mal con el modificador de contexto ya que el metacaracter . no me reconoce los saltos.

Desde ya muchisimas gracias!
  #2 (permalink)  
Antiguo 18/04/2010, 20:38
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Modificador de contexto expresion regular

yo creo que si omites el símbolo de opcional.. ?

bueno, aún así podrías leer lo siguiente:
http://www.forosdelweb.com/f18/aport...s-pcre-646110/
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 18/04/2010, 20:41
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: Modificador de contexto expresion regular

Bueno a mi me funcionó. Lo que sucede es que cuando imprime en la web, las etiquetas de html las va interpretar, para que veas el ejemplo en el web, podrías hacerlo de esta forma
Código PHP:
Ver original
  1. <?php
  2. $s = '<table width="640" border="0">
  3.  <tr><td>.....</td></tr>
  4.   ......
  5. </table>';
  6. preg_match('|<table width="640" border="0">.*?<\/table>|s',$s,$dat);
  7. $dat = htmlentities($dat[0],ENT_QUOTES);
  8. var_dump($dat);
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos

Etiquetas: contexto, expresiones, modificador, 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 01:24.