¿Qué es una expresión regular en Python?
UNA. Expresión regular (RE) un lenguaje de programación es una cadena de texto especial que se utiliza 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.
Cuando usamos la frase regular Python, lo primero que debemos reconocer es que todo es básicamente un carácter, y también escribimos patrones para que coincidan con una secuencia específica de caracteres llamada cadena. Los que están en sus teclados son letras ascii o latinas y se usa Unicode para hacer coincidir el texto extranjero. Incluye dígitos y puntuación y todos los caracteres especiales como $ # @!%, Etc.
En este tutorial de Python RegEx, aprenderemos:
Por ejemplo, una expresión Python regular podría indicarle a un programa que busque un texto específico de la cadena y luego imprima el resultado en consecuencia. Se puede incluir una demostración
- Coincidencia de texto
- Repetición
- Derivación
- Composición de patrones, etc.
La expresión regular o RegEx en Python se expresa como RE (RE, expresiones regulares o patrón de expresiones regulares) son importadas por para un módulo. Python admite la expresión regular a través de bibliotecas. RegEx en Python admite varias cosas como Modificadores, identificadores y caracteres de espacios en blanco.
Identificadores | Modificadores | Caracteres de espacio en blanco | Se requiere escape |
---|---|---|---|
d = cualquier número (dígitos) | Indica d dígitos. Ej: d {1,5} declarará dígitos entre 1,5 como 424,444,545, etc. | n = nueva línea | . + *? [] $ ^ () {} | |
D = nada más que un número (sin dígitos) | + = 1 o más trajes | s = espacio | |
s = espacio (tabulador, espacio, nueva línea, etc.) | ? = 0 o 1 trajes | t = pestaña | |
S = nada más que espacio | * = 0 o más | e = escapar | |
w = letras (coincidencia de caracteres alfanuméricos, incluido «_») | $ juego final de cable | r = retorno en carro | |
W = nada más que letras (coincide con un carácter no alfanumérico que excluye «_») | ^ cable comienza a emparejar | f = formulario de alimentación | |
. cualquier cosa menos letras (puntos) | | encaja o x / y | —————– | |
b = cualquier carácter que no sea una nueva línea | [] = rango o «varianza» | —————- | |
. | {x} = esta cantidad de código anterior | —————– |
Proporción de expresión regular (RE)
import re
- Python incluye un módulo «re» utilizado principalmente para la búsqueda y manipulación de cables
- También se utiliza a menudo para «raspar» una página web (eliminar grandes cantidades de datos de sitios web)
Comenzaremos el tutorial de frases con este sencillo ejercicio usando las oraciones (w +) y (^).
Ejemplo de expresión w + y ^
- «^»: Esta expresión coincide con el comienzo de un cable.
- «w +«: Esta expresión coincide con el carácter alfanumérico de la cadena
Aquí veremos un ejemplo de Python RegEx de cómo podemos usar la expresión 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 enfocamos en la expresión w + y ^.
Por ejemplo, para nuestra cadena «guru99, la educación es agradable» si ejecutamos el código con w + y ^, dará la salida «guru99».
import re xx = "guru99,education is fun" r1 = re.findall(r"^w+",xx) print(r1)
Recuerde, si elimina + firma de w +, la salida cambiará, dando solo el primer carácter de la primera letra, es decir, [g]
Ejemplo de expresión si force re.split
- «s»: esta expresión se utiliza para crear un espacio en la cadena
Para comprender cómo funciona esta RegEx en Python, comencemos con un ejemplo simple de Python RegEx de una función dividida. En el ejemplo, dividimos cada palabra usando la función «re.split» y al mismo tiempo usamos una expresión s que permite analizar cada palabra en la cadena por separado.
Cuando ejecute este código, le dará la salida [‘we’, ‘are’, ‘splitting’, ‘the’, ‘words’].
Ahora vea qué sucede si elimina «» de s. No hay un alfabeto en la salida, esto se debe a que eliminamos » de la cadena, y considera «s» como un carácter regular y, por lo tanto, divide las palabras dondequiera que encuentre «s» en la cadena.
De manera similar, hay otras capas de expresión regular de Python que puede usar de diferentes maneras en Python como d, D, $, ., B, etc.
Aquí está el código completo
import re xx = "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 utilizados para la expresión regular en Python.
Usar métodos de expresión regular
El paquete «re» proporciona varios métodos para hacer preguntas en un cable de entrada. Veremos los métodos alternativos en Python:
- ath.match ()
- investigar ()
- re.findall ()
Nota: Basado en las expresiones regulares, Python ofrece dos operaciones primitivas diferentes. El modo de coincidencia solo coincide con un juego al principio de la cadena y busca una coincidencia en cualquier parte de la cadena.
ath.match ()
ath.match () Una función alternativa en Python buscará el patrón de expresión regular y devolverá la primera aparición. El modo Python de RegEx Match solo verifica un juego al comienzo de la cadena. Entonces, si se encuentran maids en la primera línea, devuelve el objeto coincidente. Pero si se encuentra una coincidencia en alguna otra línea, la función Python RegEx Match devuelve nulo.
Por ejemplo, considere el siguiente código de función Pm re.match (). Las frases «w +» y » W» coincidirán con las palabras que comienzan con la letra ‘g’, después de lo cual no se identifica nada que no comience con ‘g’. Para verificar la compatibilidad de cada elemento en la lista o cadena, ejecutamos el bucle forloop en este ejemplo de redireccionamiento de Python ().
re.search (): encontrar un patrón en el texto
investigar () la función buscará el patrón de expresión regular y devolverá la primera aparición. A diferencia de una redirección de Python (), verificará cada línea de la cadena de entrada. La función de Python re.search () devuelve un objeto coincidente cuando se encuentra un patrón y «nulo» si no se encuentra el patrón
Para utilizar la función de búsqueda (), primero debe importar Python para un módulo y luego ejecutar el código. La función Python re.search () toma el «patrón» y el «texto» para escanear desde nuestro cable principal
Por ejemplo, aquí buscamos dos series literales «Prueba de software» «guru99», en la cadena de texto «Software Prueba obtuvimos el juego para «prueba de software», por lo que envía la salida de Python a re.search () Ejemplo como «encontrar coincidencia», y para la palabra «guru99» no pudimos encontrar el cable y, por lo tanto, devuelve la salida como «No coincide» .
re.findall ()
encuentra todos () un módulo se utiliza para buscar «todos» los episodios que se ajustan a un patrón en particular. Por el contrario, un módulo de búsqueda () devolverá solo el primer episodio que coincida con el patrón especificado. findall () cambiará a través de todas las líneas del archivo y devolverá todas las coincidencias de patrones no superpuestos en un solo paso.
Por ejemplo, aquí tenemos una lista de direcciones de correo electrónico, y queremos obtener todas las direcciones de correo electrónico de la lista, usamos el método re.findall () en Python. Obtendrá todas las direcciones de correo electrónico de la lista.
Aquí está el código completo para el ejemplo de re.findall ()
import re list = ["guru99 get", "guru99 give", "guru Selenium"] for element in list: z = re.match("(gw+)W(gw+)", element) if z: print((z.groups())) patterns = ['software testing', 'guru99'] 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'[w.-]+@[w.-]+', abc) for email in emails: print(email)
Banderas de Python
Muchos métodos Python Regex y funciones Regex adoptan un argumento opcional llamado Flags. Estos indicadores pueden modificar el significado del patrón Python Regex dado. Para comprenderlos, veremos uno o dos ejemplos de estas banderas.
Incluye varias banderas utilizadas en Python
Sintaxis de las banderas Regex | ¿Qué hace esta bandera? |
---|---|
[re.M] | Evaluar el principio / final de cada línea |
[re.I] | Ignora una situación |
[re.S] | Hacer [ . ] |
[re.U] | Haz { w, W, b, B} de acuerdo con las reglas Unicode |
[re.L] | Hacer que { w, W, b, B} siga la configuración regional |
[re.X] | Deja un comentario en Regex |
Ejemplo de banderas re.M o multilínea
En multilínea el carácter del patrón [^] coincidir con el primer carácter de la cadena y el comienzo de cada línea (continuando inmediatamente después de cada nueva línea). Aunque se utiliza una pequeña «w» para marcar el espacio con caracteres. Cuando ejecuta el código, la primera variable «k1» solo imprime el carácter ‘g’ para las palabras guru99, y cuando agrega una bandera de líneas múltiples, se encuentran los primeros caracteres de todos los elementos de la cadena.
Aqui esta el codigo
import re xx = """guru99 careerguru99 selenium""" k1 = re.findall(r"^w", xx) k2 = re.findall(r"^w", xx, re.MULTILINE) print(k1) print(k2)
- Anunciamos la variable xx para el cable “guru99…. Gairmeuru99… .selenium ”
- Ejecutar el código sin usar indicadores multicile solo da ‘g’ para la salida de las líneas
- Ejecute el código con una bandera «multilínea», cuando imprime ‘k2’ da la salida como ‘g’, ‘c’ y ‘s’
- Entonces, la diferencia que vemos después y antes de agregar líneas es un ejemplo anterior.
Del mismo modo, también puede usar otras marcas de Python como re.U (Unicode), re.L (Seguir la configuración regional), re.X (Permitir comentarios), etc.
Ejemplo de Python 2
Por encima de los códigos hay ejemplos de Python 3. Si desea ejecutar Python 2, considere el siguiente código.
# Example of w+ and ^ Expression import re xx = "guru99,education is fun" r1 = re.findall(r"^w+",xx) print r1 # Example of s expression in re.split function import re xx = "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 text import re list = ["guru99 get", "guru99 give", "guru Selenium"] for element in list: z = re.match("(gw+)W(gw+)", element) if z: print(z.groups()) patterns = ['software testing', 'guru99'] 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'[w.-]+@[w.-]+', abc) for email in emails: print email # Example of re.M or Multiline Flags import re xx = """guru99 careerguru99 selenium""" k1 = re.findall(r"^w", xx) k2 = re.findall(r"^w", xx, re.MULTILINE) print k1 print k2
Resumen
Expresión regular en un lenguaje de programación es una cadena de texto especial que se utiliza para describir un patrón de búsqueda. Incluye dígitos y puntuación y todos los caracteres especiales como $ # @!%, Etc. La alfabetización puede incluirse en el desempeño
- Coincidencia de texto
- Repetición
- Derivación
- Composición de patrones, etc.
En Python, se proporciona una expresión regular porque RE (RE, expresiones regulares o patrón de expresiones regulares) está incrustado a través de un módulo re-Python.
- Python incluye un módulo «re» utilizado principalmente para la búsqueda y manipulación de cables
- También se utiliza a menudo para «scraping» de páginas web (elimina una gran cantidad de datos de sitios web)
- Entre los métodos de expresión regular re.match (), re.search () y re.findall ()
- Otros métodos de reemplazo de Python RegEx son sub () y subsection () usados para reemplazar cadenas coincidentes en re
- Banderas de Python Muchos métodos Python Regex y funciones Regex adoptan un argumento opcional llamado Flags
- Estas banderas pueden modificar el significado del patrón Regex dado
- Las diferentes banderas de Python utilizadas en los modos Regex son re.M, re.I, re.S, etc.