In this article, we will learn about VERBOSE flag of the re package and how to use it.
re.VERBOSE
: This flag allows you to write regular expressions that look nicer and are more readable by allowing you to visually separate logical sections of the pattern and add comments.
Whitespace within the pattern is ignored, except when in a character class, or when preceded by an unescaped backslash, or within tokens like *?, (?: or (?P
. When a line contains a # that is not in a character class and is not preceded by an unescaped backslash, all characters from the leftmost such # through the end of the line are ignored.
regex_email = re. compile (r '^([a-z0-9_\.-]+)@([0-9a-z\.-]+)\.([a-z\.]{2, 6})$' ,
re.IGNORECASE)
regex_email = re. compile (r
,re.VERBOSE | re.IGNORECASE)
|
It’s passed as an argument to re.compile()
i.e re.compile(Regular Expression, re.VERBOSE). re.compile()
returns a RegexObject which is then matched with the given string.
Let’s consider an example where the user is asked to enter their Email ID and we have to validate it using RegEx. The format of an email is as follow:
- Personal details/local part like john123
- Single @
- Domain Name like gmail/yahoo etc
- Single Dot(.)
- Top Level Domain like .com/.org/.net
Examples:
Input : expectopatronum@gmail.com
Output : Valid
Input : avadakedavra@yahoo.com@
Output : Invalid
This is invalid because there is @ after the top level domain name.
Below is the Python implementation –
import re
def validate_email(email):
regex_email = re. compile (r
,re.VERBOSE | re.IGNORECASE)
res = regex_email.fullmatch(email)
if res:
print ( "{} is Valid. Details are as follow:" . format (email))
print ( "Local:{}" . format (res.group( 1 )))
print ( "Domain:{}" . format (res.group( 2 )))
print ( "Top Level domain:{}" . format (res.group( 3 )))
print ()
else :
print ( "{} is Invalid" . format (email))
validate_email( "expectopatronum@gmail.com" )
validate_email( "avadakedavra@yahoo.com@" )
validate_email( "Crucio@.com" )
|
Output:
expectopatronum@gmail.com is Valid. Details are as follow:
Local:expectopatronum
Domain:gmail
Top Level domain:com
avadakedavra@yahoo.com@ is Invalid
Crucio@.com is Invalid
Last Updated :
19 Jul, 2019
Like Article
Save Article
Share your thoughts in the comments
Please Login to comment...