En este articulo voy a platicar de como saber si un mail es en efecto un mail. Los ejemplos que voy a usar en este articulo son tomados de la clase de Mails del curso de Expresiones Regulares
. Entonces les voy a enseñar mi manera de resolver el problema y les voy a decir porque no es la mejor manera de resolverlo, vamos a darle.
Una cosa importante antes de empezar a hacer esto, es importante tener reglas para que un email sea valido. Por ejemplo, para este ejemplo, un email permite guion bajo (_), punto (.), números y letras, después de esto ya es el arroba (@), el dominio .com y algunos llevan .mx, .co, etc.
Entonces, teniendo estas reglas claras, vamos a utilizar un archivo con los siguiente correos:
esto.es_un.mail@mail.com
esto.es_un.mail+complejo@mail.com
dominio.com
rodrigo.jimenez@yahoo.com.mx
ruben@starbucks.com
esto_no$es_email@dominio.com
no_se_de_internet3@hotmail.com
Ahora, el comando que yo voy a utilizar es el siguiente. Cabe aclarar que yo uso la consola de Linux y el comando grep
, pero si lo estas haciendo en Atom no hay ningún problema.
grep -E -no '^[a-z\._0-9]+@[a-z]+\.[a-z]{2,5}\.?[a-z]{2,5}?$' mails.txt
Donde:
grep
para que me acepte expresiones regularesgrep
que me mandan el match solo (sin texto extra) y me dice la linea del archivo que contiene el match