Ver Mensaje Individual
  #4 (permalink)  
Antiguo 15/07/2005, 14:12
DarioDario
 
Fecha de Ingreso: junio-2005
Mensajes: 981
Antigüedad: 18 años, 10 meses
Puntos: 2
Perdon anda perfectamente, lo que pasa que yo las expresiones regulares las pruebo AQUI en vez de provarlas con codigo en PHP, se me hace más practico, pero veo que no puedo confiar mucho en esto .
Código PHP:
<?php

$cadena 
"{?cuatro}
Valor de cuatro
{?cuatrocientos}
Valor de cuatrocientos
{/?}
{/?}"
;

preg_match_all("#{\?cuatro}(.+){/\?}#ims",$cadena,$coincidencias);
?>
Y $coincidencias contiene lo siguiente:
Código:
array(2) {
  [0]=>
  array(1) {
    [0]=>
    string(80) "{?cuatro}
Valor de cuatro
{?cuatrocientos}
Valor de cuatrocientos
{/?}
{/?}"
  }
  [1]=>
  array(1) {
    [0]=>
    string(67) "
Valor de cuatro
{?cuatrocientos}
Valor de cuatrocientos
{/?}
"
  }
}
Ahora para que entiendas, que sea "ambiciosa" significa que tratara de atrapar la coincidencia mas larga/grande. Ahora te muestro un ejemplo:
Código PHP:
<?php

$cadena 
"{?cuatro}
Valor de cuatro
{?cuatrocientos}
Valor de cuatrocientos
{/?}
{/?}
{?PRUEBA}
Valor de PRUEBA. Esto no lo tendria que atrapar
{/?}"
;

preg_match_all("#{\?cuatro}(.+){/\?}#ims",$cadena,$coincidencias);
?>
Y $coincidencias contendria lo siguiente que es erroneo:
Código:
array(2) {
  [0]=>
  array(1) {
    [0]=>
    string(146) "{?cuatro}
Valor de cuatro
{?cuatrocientos}
Valor de cuatrocientos
{/?}
{/?}
{?PRUEBA}
Valor de PRUEBA. Esto no lo tendria que atrapar
{/?}"
  }
  [1]=>
  array(1) {
    [0]=>
    string(133) "
Valor de cuatro
{?cuatrocientos}
Valor de cuatrocientos
{/?}
{/?}
{?PRUEBA}
Valor de PRUEBA. Esto no lo tendria que atrapar
"
  }
}
Entiendes porque es "ambiciosa"?

Espero que te sirva. Saludos. Cualquier duda pregunta .