2011-03-04 14 views
9

necesito ayuda en la búsqueda de una expresión expresión regular que concuerda direcciones de correo electrónico de tan sólo un dominio específico¿Cómo hacer coincidir todas las direcciones de correo electrónico en un dominio específico usando regex?

Como en cualquier .*@testdomain.com

Y también lo contrario cualquier cosa que no sea .*@testdomain.com

+0

¿Qué motor de expresiones regulares (lenguaje de programación) está utilizando? ¿Por qué usar una expresión regular en absoluto? 'subject.endswith (" @ testdomain.com ")' parece ser suficiente (ejemplo de Python). –

+0

Desea encontrar todos los correos electrónicos @ testdomain.com ** Y ** al contrario, "cualquier otra cosa". ¿Eso quiere decir que quieres encontrar todo? Si es así, simplemente use su cadena; de lo contrario, debe aclarar su pregunta. – stema

+0

@Stema, creo que el problema de sasuke es una especulación teórica, revise mi propuesta de expresiones regulares para tener quizás algunas aclaraciones –

Respuesta

15

Ay

Propongo una expresión muy simple:

^[A-Za-z0-9._%+-][email protected]$

y para la verificación negativa:

^[A-Za-z0-9._%+-][email protected](?!testdomain.com)[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$

espero que podría funcionar para usted

+0

que coincidirá con el texto '@ testdomain.com' y no es un correo electrónico válido. –

+0

Coincidiendo con un dominio específico como "@ testdomain.com" fue la primera especificación de sasuke, y una expresión regular para que coincida con una dirección de correo electrónico válida ya está disponible en la red. Quería centrar la atención de sasuke en la parte relativa al dominio –

+0

@Marcello. No veo dónde dijo el OP que debería coincidir con '@ testdomain.com'. Todo lo que veo es '. * @ Testdomain.com' y estoy casi seguro de que lo usó como un comodín (como cuando se busca en el Explorador de Windows o similar). De lo contrario, no debería estar haciendo esa pregunta. –

0
grep -oE '(|^)[^ ]*@testdomain\.com(|$)' file.txt 

-o devuelve sólo la cadena coincidente

Lo anterior dará a todos los ID de correo electrónico de de testdomain en archivo.txt.

+1

Esto no es correcto. Coincidirá con los correos electrónicos no válidos, '@ testdomain.com', o' name, lastname @ testdomain.com'. –

0

Por mi escenario en particular, que necesitaba esta variación:

'^[A-Za-z0-9._%+-][email protected]' + email_domain + '$' 

esto coincidiría con un EMAIL_DOMAIN de una lista de email_domains: [ 'example1.com', 'example2.co.uk'] y yo era recorriendo la lista, haciendo coincidir cada una con una lista de direcciones de correo electrónico.

Cuestiones relacionadas