Foros del Web » Programando para Internet » PHP »

ayuda aprendiendo expresiones regulares

Estas en el tema de ayuda aprendiendo expresiones regulares en el foro de PHP en Foros del Web. hola , pegándole un repasito a php me he dado cuenta que ando cojo en un tema tan improtante y de tanto uso como las ...
  #1 (permalink)  
Antiguo 10/07/2009, 01:47
Avatar de Dundee  
Fecha de Ingreso: junio-2002
Ubicación: El Médano
Mensajes: 1.310
Antigüedad: 22 años, 5 meses
Puntos: 8
De acuerdo ayuda aprendiendo expresiones regulares

hola , pegándole un repasito a php me he dado cuenta que ando cojo en un tema tan improtante y de tanto uso como las expresiones regualres, por lo que me he puesto a ver un librito de anaya que no está nada mal en el que explica esto entre otras cosas de php5. El tema es que haciendo unos ejercicios no consigo entender muy bien porque no me funciona esto:

Código:
$correo = "[email protected]";
if (ereg("*[a-z|\.]+@ [a-z|\.]+\. (org|com|net)$",$correo) ) 
          
            echo "El correo $correo se acepta.<br>";
 else 
            echo "El correo $correo no cumple el patrón.<br>";
Me devuelve siempre El correo [email protected] no cumple el patrón.

¿Que hago mal?
¿Exactamente que hace el * delante de todo?.
Entiendo lo del + pero no entiendo el * al principio de la expresión
¿Que es lo que hace exactamente?.

Gracias de antemano por la ayuda.
Un saludo
  #2 (permalink)  
Antiguo 10/07/2009, 06:55
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años, 7 meses
Puntos: 839
Respuesta: ayuda aprendiendo expresiones regulares

La librería POSIX está obsoleta, es mejor usar PCRE:
http://www.php.net/manual/es/book.pcre.php

Por otro lado, esos espacios en la expresión sobran y pude que sean la causa del problema.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
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 21:38.