Expresión regular en Python con ejemplos | Conjunto 1
El módulo re proporciona soporte para expresiones regulares en Python. A continuación se muestran los principales métodos de este módulo.
Buscando una ocurrencia de patrón
re.search() : este método devuelve Ninguno (si el patrón no coincide) o un re.MatchObject que contiene información sobre la parte coincidente de la string. Este método se detiene después de la primera coincidencia, por lo que es más adecuado para probar una expresión regular que para extraer datos.
Python3
# A Python program to demonstrate working of re.match(). import re # Lets use a regular expression to match a date string # in the form of Month name followed by day number regex = r"([a-zA-Z]+) (\d+)" match = re.search(regex, "I was born on June 24") if match != None: # We reach here when the expression "([a-zA-Z]+) (\d+)" # matches the date string. # This will print [14, 21), since it matches at index 14 # and ends at 21. print ("Match at index %s, %s" % (match.start(), match.end())) # We us group() method to get all the matches and # captured groups. The groups contain the matched values. # In particular: # match.group(0) always returns the fully matched string # match.group(1) match.group(2), ... return the capture # groups in order from left to right in the input string # match.group() is equivalent to match.group(0) # So this will print "June 24" print ("Full match: %s" % (match.group(0))) # So this will print "June" print ("Month: %s" % (match.group(1))) # So this will print "24" print ("Day: %s" % (match.group(2))) else: print ("The regex pattern does not match.")
Producción :
Match at index 14, 21 Full match: June 24 Month: June Day: 24
Coincidencia de un patrón con texto
re.match() : esta función intenta hacer coincidir el patrón con la string completa. La función re.match devuelve un objeto de coincidencia en caso de éxito, ninguno en caso de error.
re.match(pattern, string, flags=0) pattern : Regular expression to be matched. string : String where pattern is searched flags : We can specify different flags using bitwise OR (|).
Python3
# A Python program to demonstrate working # of re.match(). import re # a sample function that uses regular expressions # to find month and day of a date. def findMonthAndDate(string): regex = r"([a-zA-Z]+) (\d+)" match = re.match(regex, string) if match == None: print ("Not a valid date") return print ("Given Data: %s" % (match.group())) print ("Month: %s" % (match.group(1))) print ("Day: %s" % (match.group(2))) # Driver Code findMonthAndDate("Jun 24") print("") findMonthAndDate("I was born on June 24")
Producción:
Given Data: Jun 24 Month: Jun Day: 24 Not a valid date
Encontrar todas las ocurrencias de un patrón
re.findall() : Devuelve todas las coincidencias del patrón que no se superponen en una string, como una lista de strings. La string se escanea de izquierda a derecha y las coincidencias se devuelven en el orden encontrado (Fuente: Python Docs ).
Python3
# A Python program to demonstrate working of # findall() import re # A sample text string where regular expression # is searched. string = """Hello my Number is 123456789 and my friend's number is 987654321""" # A sample regular expression to find digits. regex = '\d+' match = re.findall(regex, string) print(match) # This example is contributed by Ayush Saluja.
Producción :
['123456789', '987654321']
La expresión regular es un tema muy amplio. Es una biblioteca completa. Las expresiones regulares pueden hacer muchas cosas. Puede hacer coincidir, buscar, reemplazar, extraer una gran cantidad de datos. Por ejemplo, el código pequeño a continuación es tan poderoso que puede extraer la dirección de correo electrónico de un texto. Entonces podemos hacer nuestros propios Web Crawlers y scrappers en python con facilidad. Mire la expresión regular a continuación.
# extract all email addresses and add them into the resulting set new_emails = set(re.findall(r"[a-z0-9\.\-+_]+@[a-z0-9\.\-+_]+\.[a-z]+", text, re.I))
Pronto discutiremos más métodos sobre expresiones regulares.
Este artículo es una contribución de Shwetanshu Rohatgi . Si le gusta GeeksforGeeks y le gustaría contribuir, también puede escribir un artículo y enviarlo por correo a review-team@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.
Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA