- ¿Qué es una Expresión Regular en Python?
- Sintaxis de expresión regular(RE)
- Ejemplo de expresión w+ y ^
- Ejemplo de expresión \s en re.función dividida
- Usando métodos de expresión regular
- re.match ()
- re.search (): Encontrar el patrón en el texto
- re.el módulo findall()
- Banderas de Python
- Example of re.M o Banderas Multilínea
- Resumen
¿Qué es una Expresión Regular en Python?
Una expresión Regular (RE) en un lenguaje de programación es una cadena de texto especial utilizada para describir un patrón de búsqueda. Es extremadamente útil para extraer información de texto como código, archivos, registros, hojas de cálculo o incluso documentos.
Al usar la expresión regular de Python, lo primero que hay que reconocer es que todo es esencialmente un carácter, y estamos escribiendo patrones para que coincidan con una secuencia específica de caracteres también conocida como cadena. Las letras ascii o latinas son las que están en sus teclados y se usa Unicode para que coincida con el texto extranjero. Incluye dígitos y signos de puntuación y todos los caracteres especiales como $#@!%, sucesivamente.
En este tutorial de expresiones regulares de Python, aprenderemos-
- Sintaxis de expresiones regulares
- Ejemplo de Expresión w+ y ^
- Ejemplo de expresión \s en re.función dividida
- Usando métodos de expresión regular
- Usando re.match()
- Encontrar el patrón en el texto (re.search ())
- Usando re.findall for text
- Banderas de Python
- Ejemplo de re.M o Banderas Multilínea
Por ejemplo, una expresión regular de Python podría indicarle a un programa que busque texto específico de la cadena y luego imprima el resultado en consecuencia. La expresión puede incluir
- comparación del Texto
- Repetición
- Ramificación
- Patrón de la composición, etc.
La expresión regular o expresión regular en Python se denota como RE (REs, expresiones regulares o patrón de expresiones regulares) se importan a través del módulo re. Python admite expresiones regulares a través de bibliotecas. Expresiones regulares en Python admite varias cosas, como modificadores, Identificadores y caracteres de espacio en blanco.
Identificadores | Modificadores | caracteres de espacio en Blanco | Escape necesaria |
---|---|---|---|
\d= cualquier número (un dígito) | \d representa un dígito.Ex: \d{1,5} declarará dígitos entre 1,5 como 424,444,545, etc. | \n = nueva línea | . + * ? $ ^ () {} | \ |
\D= nada, pero un número (un no-dígito) | + = coincide con 1 o más | \s= espacio | |
\s = espacio (ficha,el espacio,la nueva línea etc.) | ? = matches 0 or 1 | \t =tab | |
\S= anything but a space | * = 0 or more | \e = escape | |
\w = letters ( Match alphanumeric character, including «_») | $ match end of a string | \r = carriage return | |
\W =anything but letters ( Matches a non-alphanumeric character excluding «_») | ^ match start of a string | \f= form feed | |
. = anything but letters (periods) | | matches either or x/y | —————– | |
\b = any character except for new line | = range or «variance» | —————- | |
\. | {x} = esta cantidad de código anterior | —————– |
Sintaxis de expresión regular(RE)
import re
- Módulo»re» incluido con Python utilizado principalmente para la búsqueda y manipulación de cadenas
- También se usa con frecuencia para «Raspar» páginas web (extraer gran cantidad de datos de
Comenzaremos el tutorial de expresiones con este sencillo ejercicio usando las expresiones (w+) y (^).
Ejemplo de expresión w+ y ^
- «^»: Esta expresión coincide con el inicio de una cadena
- » w+»: Esta expresión coincide con el carácter alfanumérico de la cadena
Aquí veremos un ejemplo de expresión regular de Python de cómo podemos usar las expresiones w+ y ^ en nuestro código. Cubrimos la función re.findall () en Python, más adelante en este tutorial, pero por un tiempo simplemente nos centramos en la expresión \w+ y\^.
Por ejemplo, para nuestra cadena «guru99, la educación es divertida «si ejecutamos el código con w+ y^, dará la salida»guru99».
import rexx = "guru99,education is fun"r1 = re.findall(r"^\w+",xx)print(r1)
Recuerde, si elimina el signo +de w+, la salida cambiará y solo dará el primer carácter de la primera letra, es decir,
Ejemplo de expresión \s en re.función dividida
- «s»: Esta expresión se usa para crear un espacio en la cadena
Para comprender cómo funciona esta expresión regular en Python, comenzamos con un ejemplo simple de expresión regular en Python de una función dividida. En el ejemplo, hemos dividido cada palabra usando el » re.función split» y al mismo tiempo hemos utilizado expression \s que permite analizar cada palabra de la cadena por separado.
Cuando ejecuta este código, le dará la salida .
Ahora, veamos qué sucede si eliminas » \ «de s. No hay un alfabeto ‘s’ en la salida, esto se debe a que hemos eliminado ‘\’ de la cadena, y evalúa» s «como un carácter regular y, por lo tanto, divide las palabras donde encuentre» s » en la cadena.
De manera similar, hay series de otras expresiones regulares de Python que puede usar de varias maneras en Python, como \d,\D,$,\., \b, etc.
Aquí está el código completo
import rexx = "guru99,education is fun"r1 = re.findall(r"^\w+", xx)print((re.split(r'\s','we are splitting the words')))print((re.split(r's','split the words')))
A continuación, veremos los tipos de métodos que se usan con expresiones regulares en Python.
Usando métodos de expresión regular
El paquete » re » proporciona varios métodos para realizar consultas en una cadena de entrada. Veremos los métodos de re en Python:
- re.match()
- re.buscar()
- re.findall ()
Nota: Basado en las expresiones regulares, Python ofrece dos operaciones primitivas diferentes. El método de búsqueda busca una coincidencia solo al principio de la cadena, mientras que la búsqueda busca una coincidencia en cualquier parte de la cadena.
re.match ()
re.la función match () de re en Python buscará el patrón de expresión regular y devolverá la primera ocurrencia. El método de coincidencia de expresiones regulares de Python comprueba una coincidencia solo al principio de la cadena. Por lo tanto, si se encuentra una coincidencia en la primera línea, devuelve el objeto de coincidencia. Pero si se encuentra una coincidencia en alguna otra línea, la función de coincidencia de expresiones regulares de Python devuelve null.
Por ejemplo, considere el siguiente código de Python re.función match (). La expresión » w+» y «\W » coincidirá con las palabras que comienzan con la letra ‘g’ y, a partir de entonces, cualquier cosa que no comience con ‘g’ no se identifica. Para comprobar la coincidencia de cada elemento de la lista o cadena, ejecutamos el forloop en esta re de Python.Ejemplo de match ().
re.search (): Encontrar el patrón en el texto
re.la función search () buscará el patrón de expresión regular y devolverá la primera aparición. A diferencia de Python re.match(), comprobará todas las líneas de la cadena de entrada. El Python re.la función search() devuelve un objeto match cuando se encuentra el patrón y «null» si no se encuentra el patrón
Para usar la función search (), primero debe importar el módulo Python re y luego ejecutar el código. El Python re.la función search () toma el» patrón «y el» texto»para escanear de nuestra cadena principal
Por ejemplo, aquí buscamos dos cadenas literales «Pruebas de software» «guru99», en una cadena de texto «Pruebas de software es divertido». Para» pruebas de software » encontramos la coincidencia, por lo tanto, devuelve la salida de Python re.search () Ejemplo como «encontró una coincidencia», mientras que para la palabra» guru99 «no se pudo encontrar en la cadena, por lo que devuelve la salida como»Sin coincidencia».
re.el módulo findall()
findall() se usa para buscar «todas» ocurrencias que coincidan con un patrón dado. Por el contrario, el módulo search () solo devolverá la primera ocurrencia que coincida con el patrón especificado. findall () iterará sobre todas las líneas del archivo y devolverá todas las coincidencias de patrón no superpuestas en un solo paso.
Por ejemplo, aquí tenemos una lista de direcciones de correo electrónico, y queremos que todas las direcciones de correo electrónico se obtengan de la lista, usamos el método re.findall () en Python. Encontrará todas las direcciones de correo electrónico de la lista.
Aquí está el código completo, por ejemplo de re.findall ()
import relist = for element in list: z = re.match("(g\w+)\W(g\w+)", element)if z: print((z.groups())) patterns = text = 'software testing is fun?'for pattern in patterns: print('Looking for "%s" in "%s" ->' % (pattern, text), end=' ') if re.search(pattern, text): print('found a match!')else: print('no match')abc = This email address is being protected from spambots. You need JavaScript enabled to view it., This email address is being protected from spambots. You need JavaScript enabled to view it., This email address is being protected from spambots. You need JavaScript enabled to view it.'emails = re.findall(r'+@+', abc)for email in emails: print(email)
Banderas de Python
Muchos métodos y funciones de expresiones regulares de Python toman un argumento opcional llamado Banderas. Estos indicadores pueden modificar el significado del patrón Regex de Python dado. Para entenderlas veremos uno o dos ejemplos de estas Banderas.
Various flags used in Python includes
Syntax for Regex Flags | What does this flag do |
---|---|
Make begin/end consider each line | |
It ignores case | |
Make | |
Make { \w,\W,\b,\B} follows Unicode rules | |
Make {\w,\W,\b,\B} follow locale | |
Allow comment in Regex |
Example of re.M o Banderas Multilínea
En multilínea, el carácter de patrón coincide con el primer carácter de la cadena y el comienzo de cada línea (inmediatamente después de cada nueva línea). Mientras que la expresión » w » pequeña se usa para marcar el espacio con caracteres. Cuando ejecuta el código, la primera variable » k1 «solo imprime el carácter» g » de la palabra guru99, mientras que cuando agrega la bandera multilínea, obtiene los primeros caracteres de todos los elementos de la cadena.
Aquí está el código
import rexx = """guru99 careerguru99selenium"""k1 = re.findall(r"^\w", xx)k2 = re.findall(r"^\w", xx, re.MULTILINE)print(k1)print(k2)
- Declaramos la variable xx para cadena » guru99…. careerguru99….selenium «
- Ejecuta el código sin usar banderas multilínea, da la salida solo ‘ g ‘ de las líneas
- Ejecuta el código con la bandera «multilínea», cuando imprimes ‘k2’ da la salida como ‘g’, ‘c’ y ‘s’
- Así, la diferencia que podemos ver después y antes de agregar varias líneas en el ejemplo anterior.
Del mismo modo, también puede usar otras banderas de Python como re.U (Unicode), re.L (Siga la configuración regional), re.X (Permitir comentario), etc.
Ejemplo de Python 2
Los códigos anteriores son ejemplos de Python 3, si desea ejecutarse en Python 2, considere el siguiente código.
# Example of w+ and ^ Expressionimport rexx = "guru99,education is fun"r1 = re.findall(r"^\w+",xx)print r1# Example of \s expression in re.split functionimport rexx = "guru99,education is fun"r1 = re.findall(r"^\w+", xx)print (re.split(r'\s','we are splitting the words'))print (re.split(r's','split the words'))# Using re.findall for textimport relist = for element in list: z = re.match("(g\w+)\W(g\w+)", element)if z: print(z.groups()) patterns = text = 'software testing is fun?'for pattern in patterns: print 'Looking for "%s" in "%s" ->' % (pattern, text), if re.search(pattern, text): print 'found a match!'else: print 'no match'abc = This email address is being protected from spambots. You need JavaScript enabled to view it., This email address is being protected from spambots. You need JavaScript enabled to view it., This email address is being protected from spambots. You need JavaScript enabled to view it.'emails = re.findall(r'+@+', abc)for email in emails: print email# Example of re.M or Multiline Flagsimport rexx = """guru99 careerguru99selenium"""k1 = re.findall(r"^\w", xx)k2 = re.findall(r"^\w", xx, re.MULTILINE)print k1print k2
Resumen
Una expresión regular en un lenguaje de programación es una cadena de texto especial utilizada para describir un patrón de búsqueda. Incluye dígitos y signos de puntuación y todos los caracteres especiales como $#@!%, sucesivamente. La expresión puede incluir
- Coincidencia de texto
- Repetición
- Ramificación
- Composición de patrones, etc.
En Python, una expresión regular se denota como RE (REs, expresiones regulares o patrón de expresiones regulares) incrustadas a través del módulo re de Python.
- Módulo»re «incluido con Python utilizado principalmente para la búsqueda y manipulación de cadenas
- También se usa con frecuencia para» Raspar » páginas web (extraer gran cantidad de datos de sitios web)
- Los métodos de expresión regular incluyen re.match (), re.search()& re.findall ()
- Otros métodos de reemplazo de expresiones regulares de Python son sub() y subn (), que se usan para reemplazar cadenas coincidentes en re
- Banderas de Python Muchos métodos de Expresiones regulares de Python y funciones de Expresiones regulares toman un argumento opcional llamado Banderas
- Estas banderas pueden modificar el significado del patrón de expresiones regulares dado
- Se usan varias banderas de Python en los Métodos de Expresiones regulares.M, re.Yo, re.S, etc.