Escape de expresiones regulares de Python

Abid Ullah 21 junio 2023
  1. Escape de expresiones regulares de Python
  2. Sintaxis para Python Regex Escape
  3. Uso múltiple de Python Regex
Escape de expresiones regulares de Python

Este artículo trata sobre el escape de expresiones regulares de Python. Además, cubriremos el escape de expresiones regulares de Python y cómo usarlo con un código de ejemplo adecuado, así como múltiples usos para Python Regex.

Además, Python admite operaciones de búsqueda y reemplazo en cadenas usando expresiones regulares (o expresiones regulares).

Escape de expresiones regulares de Python

RegEx es una excelente técnica para hacer coincidir el texto de acuerdo con un patrón predefinido. Comparando un texto con un patrón particular se puede detectar si está presente o ausente.

También puede dividir un patrón en subpatrones. En Python, regex escape puede realizar una amplia gama de tareas.

Puede realizar operaciones de búsqueda y reemplazo, reemplazar patrones en el texto y verificar si una cadena contiene un patrón específico. Usando expresiones regulares, también realizaremos operaciones de búsqueda y reemplazo hoy.

Las expresiones regulares en Python se pueden expresar utilizando el módulo re de la biblioteca estándar. Una expresión regular y una cadena consideran su propósito principal, que es realizar una búsqueda.

Se devolverá una coincidencia si hay una primera coincidencia o no.

Python tiene un módulo predeterminado, re, que ayuda con la búsqueda y el reemplazo. Nuestro código debe importar el módulo al principio para usarlo.

import re

Código de ejemplo:

import re

match = re.search(
    r"Analytics",
    "DataScience: Data Science & Analytics\                                    subfield of AI",
)
print(match)
print(match.group())
print("Begin the Index:", match.start())
print("Let's finish the Index:", match.end())

Producción :

<re.Match object; span=(28, 37), match='Analytics'>
Analytics
Begin the Index: 28
Let's finish the Index: 37

Sintaxis para Python Regex Escape

Una propiedad en bruto está representada por el carácter r, (r'property') aquí, no por una expresión regular. A diferencia de una cadena normal, una cadena simple no interpretará el carácter \ como un carácter de escape.

Debido a la forma en que los motores de expresiones regulares utilizan el carácter / para escapar, utiliza los caracteres / para escapar.

Expliquemos esto con Python.

import re

# When an escape() is used in the first case, it returns a string with BackSlash '/' before every non-Alphanumeric character. In the second case, it returns a string with BackSlash '/' before '' only.
print(re.escape("It was really a wonderful experience so far"))
print(re.escape("I am curious about the experience [a-9], she said \t ^Awesome"))

Producción :

It\ was\ really\ a\ wonderful\ experience\ so\ far
I\ am\ curios\ about\ the\ experience\ \[a\-9\],\ she\ said\ \	\ \^Awesome

Además, si desea verificar si existe una palabra en una cadena con una expresión regular en Python, se pueden usar comas para separar la cadena.

Siempre que no haya caracteres de escape en la cadena, la r convierte a la cadena en una cadena sin formato, que no procesa los caracteres de escape.

Además, re.match coincide desde el principio de la cadena. Esto significa que busca coincidencias exactas entre la cadena y el patrón.

Use re.search si necesita hacer coincidir algo en la cadena en cualquier lugar. Lo siguiente es un ejemplo.

import re

line = "This,is,a,practice,string"
re.match("practice", line)
re.search("practice", line)

Producción :

<re.Match object; span=(10, 18), match='practice'>

Además, aprenderemos sobre los múltiples usos de las expresiones regulares de Python.

Uso múltiple de Python Regex

Buscar y reemplazar con Regex

En el método regex, se busca una cadena y luego se reemplaza algún otro valor. La función re.sub() de Python en el módulo re se usa para lograr esto.

Sintaxis:

re.sub(pattern, replacement, string, count=0, flags=0)

Podemos buscar y encontrar una cadena usando una expresión regular usando Python. En este caso, la cadena es la variable que contiene la cadena sobre la que desea operar.

Podemos especificar cuántas veces desea que se reemplace el patrón si aparece varias veces en la cadena. 0 es el valor predeterminado; en cualquier caso, es opcional.

No es necesario especificar banderas de expresiones regulares.

Código de ejemplo:

import re

str = "abid304@outlook.com"
print(re.sub("[a-z]*@", "abc@", str))

Producción :

abid304abc@outlook.com

Reemplazo multipatrón con Regex

Se pueden reemplazar varios patrones a la vez usando expresiones regulares. La siguiente sintaxis se puede utilizar para lograr esto fácilmente.

Sintaxis:

re.sub(pattern_11 | pattern_22, replacement, string, count=0, flags=0)

Código de ejemplo:

import re

str = "MachineLearning is the Subfield of AI"
print(re.sub(r"(\s)|(-)", ",", str))

Producción :

MachineLearning,is,the,Subfield,of,AI

Reemplace múltiples patrones con múltiples reemplazos usando Regex

Regex también se puede usar para reemplazar múltiples patrones con diferentes reemplazos. Como se muestra en el siguiente ejemplo, es necesaria una modificación menor.

Código de ejemplo:

import re


def convrt_case(mtch_obj):
    if mtch_obj.group(1) is not None:
        return mtch_obj.group(1).lower()
    if mtch_obj.group(2) is not None:
        return mtch_obj.group(2).upper()


str = "mACHINE lEARNING IS THE sUBFIELD OF ai"
print(re.sub(r"([A-Z]+)|([a-z]+)", convrt_case, str))

Producción :

Machine Learning is the Subfield of AI

Como se muestra en este ejemplo, la cadena contiene letras mayúsculas y minúsculas que deben reemplazarse. Las mayúsculas deben ser reemplazadas por minúsculas y viceversa.

Crearemos dos grupos y luego agregaremos una función para reemplazarlos.

En Python, el método sub() de escape de expresiones regulares se usa para reemplazar una cadena. La cadena reemplazada es devuelta por un método integrado de Python en el módulo re.

Asegúrate de importar el módulo re. En este método, se busca el patrón en la cadena y se reemplaza con una nueva expresión.

Esperamos que este artículo de Python lo haya ayudado a comprender cómo usar regex escape en Python de manera más efectiva.

Autor: Abid Ullah
Abid Ullah avatar Abid Ullah avatar

My name is Abid Ullah, and I am a software engineer. I love writing articles on programming, and my favorite topics are Python, PHP, JavaScript, and Linux. I tend to provide solutions to people in programming problems through my articles. I believe that I can bring a lot to you with my skills, experience, and qualification in technical writing.

LinkedIn

Artículo relacionado - Python Regex