Ver Mensaje Individual
  #3 (permalink)  
Antiguo 15/12/2015, 10:42
Avatar de ArturoGallegos
ArturoGallegos
Moderador
 
Fecha de Ingreso: febrero-2008
Ubicación: Morelia, México
Mensajes: 6.774
Antigüedad: 17 años
Puntos: 1146
Respuesta: Buscar emails en texto

el simbolo ^ hace que la coincidencia siempre tenga que empezar al inicio del string por lo que si tienes algo mas antes del correo jamas coincidira.

Aparte preg_match_all requiere que la expresion este envuelta en / o |

Yo para validar correos utilizo

[a-zA-Z] -> al inicio para asegurarme empieze con una letra
[a-zA-Z0-9\._-] -> para tomar todos los caracteres validos
@
[a-zA-Z0-9\._-] -> para extraer el dominio, tambien con caracteres validos
[a-z]{2,5} -> para conocer la extencion de dominio,,, eso de limitarlo a 3 caracteres ya no es valido ya que hay dominios mas largos como .ninja .agency .express entre muchos otros de nueva aparicion.

[a-zA-Z][a-zA-Z0-9\._-]+@[a-zA-Z0-9\._-]+\.[a-z]{2,5}



Código PHP:
Ver original
  1. preg_match_all("|[a-zA-Z][a-zA-Z0-9\._-]+@[a-zA-Z0-9\._-]+\.[a-z]{2,5}|", $texto, $coincidencias);
  2.  
  3. preg_match_all("/[a-zA-Z][a-zA-Z0-9\._-]+@[a-zA-Z0-9\._-]+\.[a-z]{2,5}/", $texto, $coincidencias);

Última edición por ArturoGallegos; 15/12/2015 a las 10:48