En este artículo, aprenderemos sobre el indicador VERBOSE del paquete re y cómo usarlo.
re.VERBOSE
: Esta bandera le permite escribir expresiones regulares que se ven mejor y son más legibles al permitirle separar visualmente las secciones lógicas del patrón y agregar comentarios.
Los espacios en blanco dentro del patrón se ignoran, excepto cuando están en una clase de caracteres, o cuando van precedidos por una barra invertida sin escape, o dentro de tokens como *?, (?: or (?P
. Cuando una línea contiene un # que no está en una clase de carácter y no está precedido por una barra invertida sin escape, se ignoran todos los caracteres desde el extremo izquierdo como # hasta el final de la línea.
# Without Using VERBOSE regex_email = re.compile(r'^([a-z0-9_\.-]+)@([0-9a-z\.-]+)\.([a-z\.]{2, 6})$', re.IGNORECASE) # Using VERBOSE regex_email = re.compile(r""" ^([a-z0-9_\.-]+) # local Part @ # single @ sign ([0-9a-z\.-]+) # Domain name \. # single Dot . ([a-z]{2,6})$ # Top level Domain """,re.VERBOSE | re.IGNORECASE)
Se pasa como argumento a re.compile()
ie re.compile(Regular Expression, re.VERBOSE) . re.compile()
devuelve un RegexObject que luego se compara con la string dada.
Consideremos un ejemplo en el que se le pide al usuario que ingrese su ID de correo electrónico y tenemos que validarlo usando RegEx. El formato de un correo electrónico es el siguiente:
- Datos personales/parte local como john123
- Único @
- Nombre de dominio como gmail/yahoo, etc.
- Punto único (.)
- Dominio de nivel superior como .com/.org/.net
Ejemplos:
Input : expectopatronum@gmail.com Output : Valid Input : avadakedavra@yahoo.com@ Output : Invalid This is invalid because there is @ after the top level domain name.
A continuación se muestra la implementación de Python:
# Python3 program to show the Implementation of VERBOSE in RegEX import re def validate_email(email): # RegexObject = re.compile( Regular expression, flag ) # Compiles a regular expression pattern into # a regular expression object regex_email=re.compile(r""" ^([a-z0-9_\.-]+) # local Part @ # single @ sign ([0-9a-z\.-]+) # Domain name \. # single Dot . ([a-z]{2,6})$ # Top level Domain """,re.VERBOSE | re.IGNORECASE) # RegexObject is matched with the desired # string using fullmatch function # In case a match is found, search() # returns a MatchObject Instance res=regex_email.fullmatch(email) #If match is found, the string is valid if res: print("{} is Valid. Details are as follow:".format(email)) #prints first part/personal detail of Email Id print("Local:{}".format(res.group(1))) #prints Domain Name of Email Id print("Domain:{}".format(res.group(2))) #prints Top Level Domain Name of Email Id print("Top Level domain:{}".format(res.group(3))) print() else: #If match is not found,string is invalid print("{} is Invalid".format(email)) # Driver Code validate_email("expectopatronum@gmail.com") validate_email("avadakedavra@yahoo.com@") validate_email("Crucio@.com")
Producción:
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
Publicación traducida automáticamente
Artículo escrito por PoojaRani24 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA