DEV Community

Cover image for Email Pattern Matching with regex- NLP
datatoinfinity
datatoinfinity

Posted on

Email Pattern Matching with regex- NLP

In text preprocessing we were finding pattern of 'data-to-infinity' it is the same process but we will find email pattern like 'datatoinfinity@gmail.com'.

So email contain special character, Lower case alphabet, upper case alphabet and digit or we can say alphanumeric value.

mail= datatoinfinity@hotmail.com
pattern= \w]+@[\w]+.[\w]+

import re
mail='datatoinfinity@hotmail.com'
pattern='[\w]+@[\w]+.[\w]+'
print(re.search(pattern,mail))
Output:

Pattern=[\w]+@[\w]+.[\w]
Group= [username]@[domain].[extension]

Basically we made pattern on basis that first username came in any email then domain like gmail,hotmail,yahoo etc then extension like .com,.in,.org.

If we use group() in search() the code will return the pattern string.

import re
mail='datatoinfinity@hotmail.com'
pattern='[\w]+@[\w]+.[\w]+'
print(re.search(pattern,mail).group())
Output:
datatoinfinity@hotmail.com

Email with Specific domain

import re
mail1='datatoinfinity@hotmail.in'
mail2='dottyexy@gmail.com'
pattern='[\w]+@(gmail).(com)'
match1=re.search(pattern,mail1)
match2=re.search(pattern,mail2)
print(match1)
print(match2)
Output:
None

pattern='[\w]+@(gmail).(com)'

Email with multiple domain

import re
mail1='datatoinfinity@hotmail.in'
mail2='dottyexy@gmail.com'
mail3='littleprincess@gmail.org'
pattern='[\w]+@(gmail).(com|in|org)'
match1=re.search(pattern,mail1)
match2=re.search(pattern,mail2)
match3=re.search(pattern,mail2)
print(match1)
print(match2)
print(match3)
None


pattern='[\w]+@(gmail).(com|in|org)'

Top comments (0)

Some comments may only be visible to logged-in visitors. Sign in to view all comments.