Introducción a Python Regex

Python es la palabra de moda en la industria tecnológica hoy en día. Es un lenguaje que está ganando popularidad a un ritmo rápido. Es un lenguaje muy dinámico y se puede utilizar para crear aplicaciones web para algoritmos de aprendizaje automático. En este artículo, vamos a aprender sobre cómo se usa Regex en Python. Una expresión regular es una forma abreviada de Expresión regular y es básicamente una secuencia de caracteres que se puede usar como patrón. Lo bueno es que Python tiene su propio paquete Regex incorporado conocido como re.

Sintaxis:

Vamos a entender la sintaxis con un ejemplo. El ejemplo de esto es que podemos buscar una cadena para ver si comienza con "Él" y termina con "inteligente".

import reword = "He is very smart"
x =re.search("^He.*smart$", word)
print(x)

Si observa la sintaxis, es muy simple, solo tiene que importar primero el paquete regex que es re y luego usar cualquiera de las funciones del paquete importado según sus requisitos. Si ejecutamos el código de muestra anterior en Jupyter obtenemos el siguiente resultado.

Funciones de expresiones regulares en Python

Hay muchas funciones regex que nos ayudan a buscar una cadena para una coincidencia. Antes de eso, primero aprenderemos sobre los caracteres que generalmente vemos en una función regex.

()

Representa un conjunto de personajes.

.

Representa cualquier personaje excepto una nueva línea.

* *

Representa cero o más ocurrencias.

+

Representa una o más ocurrencias.

^

Representa el personaje inicial.

PS

Representa el personaje final.

El |

Representa o-o.

()

Representa captura y grupo.

\

Generalmente se usa para escapar de caracteres especiales

Regex también tiene algunas secuencias especiales que serán útiles para conocer, por ejemplo:

\ w

Muestra una coincidencia si la cadena tiene algún conjunto de caracteres de palabras de (0-9), AZ o az y guión bajo.

\ W

Devuelve una coincidencia si la cadena no tiene caracteres de palabra presentes.

\re

Estos retornos coinciden cuando hay dígitos en la cadena.

\RE

Es opuesto al anterior, ya que devuelve una coincidencia si no hay dígitos presentes en la cadena.

\ s

Se utiliza para verificar los espacios en blanco en una cadena. Devuelve coincidencia si hay caracteres de espacio en blanco presentes.

\ S

Devuelve la coincidencia cuando no hay espacios en blanco en la cadena.

Funciones utilizadas para las operaciones de expresiones regulares

Veamos varias funciones del módulo re que se pueden usar para operaciones regex en python.

1. Función findall (): esta función está presente en el módulo re. Devuelve una lista de todas las coincidencias presentes en la cadena. Se itera de izquierda a derecha a través de la cadena. Las coincidencias también se devuelven exactamente en el mismo orden de búsqueda. Veremos un ejemplo de esto. Supongamos que queremos encontrar todos los dígitos presentes en una cadena. Para esto, utilizaremos la función findall () en la que encontraremos todos los dígitos presentes en la cadena. Veamos el código para esto ahora:

Código:

import re
word = "Raju is 22 years old and his mobile number last three-digit is 789"
rgex ='\d+'
x =re.findall(rgex, word)
print(x)

Si revisamos el código, básicamente se nos asigna la palabra variable con una cadena que contiene dígitos y luego se pasa el símbolo de expresión regular correspondiente a los dígitos junto con la palabra variable como argumentos en la función findall ()

Ahora, veamos el resultado.

Como puede ver, como resultado obtenemos una lista de números.

2. Función de búsqueda (): la función de búsqueda se utiliza para buscar patrones en una cadena y, si se encuentra una coincidencia, devuelve el objeto. Aquí una cosa que debemos recordar es que si hay más de una coincidencia, solo devuelve la primera aparición. Si no se encuentra ninguna coincidencia, no devuelve ninguna. Veremos un ejemplo de esto si queremos encontrar la cadena que comienza con una palabra en particular. Pondremos a prueba casos de coincidencia positiva y negativa. Veamos el código para el mismo.

Código:

import re
word = "Raju is 22 years old"
rgex ='^Raju'
x =re.search(rgex, word)
print(x)
regex1= '^Mohan'
x1 = re.search(regex1, word)
print(x1)

Aquí la variable 'regex' se usa en un escenario positivo y la variable 'regex1' para un escenario negativo. Ahora por favor vea la salida.

En el primer caso, se devuelve el objeto de coincidencia, mientras que en el segundo caso se devuelve 'Ninguno'.

3. Función Split (): esta función divide la cadena después de cada coincidencia, lo que significa que tan pronto como haya una coincidencia en la cadena, esta función divide la cadena desde allí. Entonces, si hay tres coincidencias, habrá tres divisiones. Veremos un ejemplo. Supongamos que queremos dividir una cadena después de cada espacio. Entonces podemos usar esta función dividida para un buen uso en esa situación.

Código:

import re
word = "Raju is 22 years old"
rgex ='\s'
x =re.split(rgex, word)
print(x)

Aquí los patrones representan el espacio en blanco. Ahora veamos la salida.

Como puede ver en la salida, la cadena se divide después de cada espacio.

4. función sub (): esta función reemplaza las coincidencias con la cadena o el carácter que el usuario elija. Básicamente significa que si hay una coincidencia en la cadena, reemplazará ese carácter o cadena coincidente con su cadena o carácter y devolverá la cadena modificada. Se necesitan tres argumentos. Por ejemplo, simplemente reemplazaremos el espacio en blanco con '&' en nuestra cadena.

Código:

import re
word = "Raju is 22 years old"
rgex ='\s'
x =re.sub(rgex, '&', word)
print(x)

Ahora veamos el resultado del código anterior.

Como puede ver, todos los espacios fueron reemplazados por '&'.

Conclusión

En este artículo, discutimos el módulo regex y sus diversas funciones incorporadas de Python. Regex es muy importante y se usa ampliamente en varios lenguajes de programación.

Artículos recomendados

Esta es una guía de Python Regex. Aquí discutimos la Introducción a Python Regex y algunas funciones importantes de expresiones regulares junto con un ejemplo. También puede consultar nuestros otros artículos sugeridos para obtener más información:

  1. Mientras Loop en Python
  2. Número inverso en Python
  3. Palabras clave de Python
  4. Conjuntos de Python
  5. Palabras clave PHP
  6. Palabras clave de C ++