Foros del Web » Programando para Internet » PHP »

ayuda con expresion regular

Estas en el tema de ayuda con expresion regular en el foro de PHP en Foros del Web. Hola, tengo un problema en mi BD tengo unos datos que se estan insertando por ejemplo: Código HTML: Viale S. Eufemia 28 <br /> 25135 ...
  #1 (permalink)  
Antiguo 17/08/2009, 15:55
 
Fecha de Ingreso: diciembre-2006
Mensajes: 381
Antigüedad: 17 años, 4 meses
Puntos: 2
ayuda con expresion regular

Hola, tengo un problema
en mi BD tengo unos datos que se estan insertando por ejemplo:
Código HTML:
Viale S. Eufemia 28<br />						
25135 BRESCIA<br />
NAPOLI<br /> 
Hay ocasiones en la cuales aparecen 3 etiquetas <br />, otras veces 2 u otras veces 1, bueno, tengo que hacer unas funciones dependiendo de cuantos <br /> hay en la data, he estado tratando asi

Código PHP:
$data 'Viale S. Eufemia 28<br />                    
25135 BRESCIA<br />
NAPOLI<br />'
;

if (
ereg('(<br />){3}',$data)) {
//hacer algo
}elseif (ereg('(<br />){2}',$data)) {
//hacer otra cosas

Pero con este codigo no me sale, pueden ayudarme?
  #2 (permalink)  
Antiguo 17/08/2009, 16:04
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años
Puntos: 1517
Respuesta: ayuda con expresion regular

No uses ereg eso esta obsolote usa mejor los preg. Ejemplo

Código php:
Ver original
  1. <?php
  2. $data = 'Viale S. Eufemia 28<br />                    
  3. 25135 BRESCIA<br />
  4. NAPOLI<br />';
  5.  
  6. preg_match_all('|<br \/>|',$data,$m);
  7.  
  8. if(count($m[0])==3){
  9.     echo "Hay 3 br";
  10. }elseif(count($m[0])==2){
  11.     echo "Hay 2 br";
  12. }
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #3 (permalink)  
Antiguo 17/08/2009, 16:30
 
Fecha de Ingreso: diciembre-2006
Mensajes: 381
Antigüedad: 17 años, 4 meses
Puntos: 2
Respuesta: ayuda con expresion regular

Cita:
Iniciado por abimaelrc Ver Mensaje
No uses ereg eso esta obsolote usa mejor los preg. Ejemplo

Código php:
Ver original
  1. <?php
  2. $data = 'Viale S. Eufemia 28<br />                    
  3. 25135 BRESCIA<br />
  4. NAPOLI<br />';
  5.  
  6. preg_match_all('|<br \/>|',$data,$m);
  7.  
  8. if(count($m[0])==3){
  9.     echo "Hay 3 br";
  10. }elseif(count($m[0])==2){
  11.     echo "Hay 2 br";
  12. }
Sos un genio XDD. gracias

en el patron de la expresion regular he quitado los "|" y me da el mismo resultado, hay alguna diferencia?
  #4 (permalink)  
Antiguo 17/08/2009, 16:42
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años
Puntos: 1517
Respuesta: ayuda con expresion regular

Se supone que los | son las delimitaciones, no deberias quitarlos
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #5 (permalink)  
Antiguo 17/08/2009, 18:09
 
Fecha de Ingreso: diciembre-2006
Mensajes: 381
Antigüedad: 17 años, 4 meses
Puntos: 2
Respuesta: ayuda con expresion regular

Cita:
Iniciado por abimaelrc Ver Mensaje
Se supone que los | son las delimitaciones, no deberias quitarlos
Okis, thanks
  #6 (permalink)  
Antiguo 18/08/2009, 00:55
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años
Puntos: 1517
Respuesta: ayuda con expresion regular

Puedes usar de delimitacion muchas cosas por ejemplo /codigo/, @codigo@, |codigo|, etc etc. Ahora la mayoria usa /codigo/ porque usar |codigo| el problema es que el simbolo de | tambien en expresiones se usa para indicar (o), me refiero a escoger entre uno o otro.
http://www.forosdelweb.com/f18/aport...s-pcre-646110/
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
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 09:07.