RegEx de Python

RegEx o expresión regular es una secuencia de caracteres que forma un patrón de búsqueda.

RegEx se puede usar para verificar si una cadena contiene un patrón de búsqueda especificado.

RegEx

Python ofrece un módulo llamado re paquete integrado, se puede usar para manejar expresiones regulares.

Importar re Módulo:

import re

RegEx en Python

Importar re Después de importar el módulo, se puede comenzar a usar expresiones regulares:

Ejemplo

Buscar la cadena para ver si comienza con "China" y termina con "country":

import re
txt = "China es un gran país"
x = re.search("^China.*country$", txt)

Ejemplo de ejecución

Funciones RegEx

re El módulo proporciona un conjunto de funciones que permiten buscar coincidencias en cadenas:

Función Descripción
findall Devuelve una lista que contiene todas las coincidencias
search Si hay alguna coincidencia en cualquier posición de la cadena, devuelve un objeto Match
split Devuelve una lista que divide la cadena en cada coincidencia
sub Reemplaza una o más coincidencias con una cadena

Metacaracter

Los metacaracteres son caracteres que tienen un significado especial:

Carácter Descripción Ejemplo TIY
[] Un grupo de caracteres "[a-m]" Intente esto
\ Ilustra la secuencia especial (también se puede usar para escapar caracteres especiales) "\d" Intente esto
. Cualquier carácter (salvo el carácter de nueva línea) "he..o" Intente esto
^ Comienza con "^hello" Intente esto
$ Termina en "world$" Intente esto
* Cero o más apariciones "aix*" Intente esto
+ Una o más apariciones "aix+" Intente esto
{} Apariciones exactamente especificadas "al{2}" Intente esto
| Cualquiera de los dos "falls|stays" Intente esto
() Captura y agrupación

Secuencia especial

Una secuencia especial es \ seguido de algún carácter de la siguiente tabla, tiene un significado especial:

Carácter Descripción Ejemplo TIY
\A Si el carácter especificado se encuentra al principio de la cadena, devuelve la coincidencia "\AThe" Intente esto
\b Devuelve una coincidencia donde el carácter especificado está en el principio o final de la palabra r"\bain"
r"rain\b"
Intente esto
Intente esto
\B Devuelve una coincidencia donde el carácter especificado existe, pero no en el principio (o final) de la palabra r"\Bain"
r"rain\B"
Intente esto
Intente esto
\d Devuelve una coincidencia donde la cadena contiene dígitos (dígitos 0-9) "\d" Intente esto
\D Devuelve una coincidencia donde la cadena no contiene dígitos "\D" Intente esto
\s Devuelve una coincidencia donde la cadena contiene caracteres en blanco "\s" Intente esto
\S Devuelve una coincidencia donde la cadena no contiene caracteres en blanco "\S" Intente esto
\w Devuelve una coincidencia donde la cadena contiene caracteres de palabra
(caracteres desde a hasta Z, dígitos desde 0 hasta 9 y el carácter de subrayado _)
"\w" Intente esto
\W Devuelve una coincidencia donde la cadena no contiene caracteres de palabra "\W" Intente esto
\Z Si el carácter especificado se encuentra al final de la cadena, devuelve la coincidencia "Spain\Z" Intente esto

Conjunto (Set)

El conjunto (Set) se representa por paréntesis cuadrados [] Un grupo de caracteres dentro de un conjunto de corchetes, que tiene significado especial:

Conjunto Descripción Intente esto
[arn] Devuelve una coincidencia que contenga uno de los caracteres especificados (a, r o n) Intente esto
[a-n] Devuelve las coincidencias de cualquier carácter en minúsculas entre a y n Intente esto
[^arn] Devuelve las coincidencias de cualquier carácter que no sea a, r o n Intente esto
[0123] Devuelve las coincidencias que contienen cualquier número especificado (0, 1, 2 o 3) Intente esto
[0-9] Devuelve cualquier número entre 0 y 9 Intente esto
[0-5][0-9] Devuelve las coincidencias de cualquier número entre 0 y 9 Intente esto
[a-zA-Z] Devuelve las coincidencias de cualquier carácter entre a y z, tanto en minúsculas como en mayúsculas Intente esto
[+] En el conjunto, +, *, ., |, (), $, {} no tienen significado especial, por lo que [+] representa: devuelve todas las coincidencias del carácter + en la cadena Intente esto

Función findall()

findall() La función devuelve una lista que contiene todas las coincidencias.

Ejemplo

Imprima la lista de todas las coincidencias:

import re
str = "China es un gran país"
x = re.findall("a", str)
print(x)

Ejemplo de ejecución

Esta lista contiene las coincidencias encontradas en el orden en que se encuentran.

Si no se encuentra una coincidencia, se devuelve una lista vacía:

Ejemplo

Si no se encuentra una coincidencia, se devuelve una lista vacía:

import re
str = "China es un gran país"
x = re.findall("USA", str)
print(x)

Ejemplo de ejecución

Función search()

search() La función busca coincidencias en la cadena y devuelve un objeto Match si existe una coincidencia.

Si hay múltiples coincidencias, solo se devuelve la primera coincidencia:

Ejemplo

Búsque el primer carácter de espacio en blanco en la cadena:

import re
str = "China es un gran país"
x = re.search("\s", str)
print("La primera posición del carácter de espacio en blanco es:", x.start())

Ejemplo de ejecución

Si no se encuentra una coincidencia, se devuelve el valor: Nulo:

Ejemplo

Realice una búsqueda sin devolver la coincidencia:

import re
str = "China es un gran país"
x = re.search("USA", str)
print(x)

Ejemplo de ejecución

Función split()

split() La función devuelve una lista donde la cadena se divide cada vez que se encuentra una coincidencia:

Ejemplo

Divida la cadena en cada carácter de espacio en blanco:

import re
str = "China es un gran país"
x = re.split("\s", str)
print(x)

Ejemplo de ejecución

Puede especificar maxsplit El parámetro se utiliza para controlar la cantidad de apariciones:

Ejemplo

Divida la cadena solo en la primera aparición:

import re
str = "China es un gran país"
x = re.split("\s", str, 1)
print(x)

Ejemplo de ejecución

Función sub()

sub() La función reemplaza la coincidencia con el texto que elija:

Ejemplo

Reemplace cada carácter de espacio en blanco con el número 9:

import re
str = "China es un gran país"
x = re.sub("\s", "9", str)
print(x)

Ejemplo de ejecución

Puede especificar count El parámetro se utiliza para controlar el número de reemplazos:

Ejemplo

Reemplazar las dos primeras apariciones:

import re
str = "China es un gran país"
x = re.sub("\s", "9", str, 2)
print(x)

Ejemplo de ejecución

Objeto Match

El objeto Match es un objeto que contiene información sobre la búsqueda y los resultados.

Notas:Si no hay coincidencias, se devuelve el valor Nuloen lugar de objeto Match.

Ejemplo

Se ejecutará y devolverá un objeto Match de búsqueda:

import re
str = "China es un gran país"
x = re.search("a", str)
print(x) # Se imprimirá un objeto

Ejemplo de ejecución

El objeto Match proporciona propiedades y métodos para obtener información sobre la búsqueda y los resultados:

  • span() El tupla devuelto contiene la posición de inicio y final de la coincidencia
  • .string Devolver la cadena introducida en la función
  • group() Devolver la parte de la coincidencia

Ejemplo

Imprimir la posición de la primera coincidencia (posición de inicio y posición de final).

Buscar expresiones regulares que comiencen con una letra mayúscula "C" en cualquier palabra:

import re
str = "China es un gran país"
x = re.search(r"\bC\w+", str)
print(x.span())

Ejemplo de ejecución

Ejemplo

Imprimir la cadena introducida en la función:

import re
str = "China es un gran país"
x = re.search(r"\bC\w+", str)
print(x.string)

Ejemplo de ejecución

Ejemplo

Imprimir la parte de la cadena coincidente.

Buscar expresiones regulares que comiencen con una letra mayúscula "C" en cualquier palabra:

import re
str = "China es un gran país"
x = re.search(r"\bC\w+", str)
print(x.group())

Ejemplo de ejecución

Notas:Si no hay coincidencias, se devuelve el valor Nuloen lugar de objeto Match.