[Rastreador de Python] Domina la poderosa herramienta de procesamiento de texto re

Introducción: la expresión regular es una poderosa herramienta de procesamiento de texto. Mediante el uso de algunos caracteres y reglas específicos, puede hacer coincidir, buscar, reemplazar y extraer fácilmente patrones específicos en cadenas. Este tutorial lo llevará a los conceptos básicos de las expresiones regulares en Python y demostrará su aplicación a través de ejemplos y ejemplos.

inserte la descripción de la imagen aquí

1. ¿Qué es una expresión regular?

La expresión regular es una herramienta de coincidencia de patrones basada en caracteres y reglas específicos, que se puede usar para describir y hacer coincidir patrones específicos en cadenas. En Python, podemos usar el módulo re para manipular expresiones regulares.

2. Metacaracteres básicos de las expresiones regulares

En las expresiones regulares, hay algunos caracteres especiales llamados metacaracteres, que tienen significados y funciones especiales y se pueden usar para hacer coincidir patrones específicos en cadenas. Los siguientes son algunos metacaracteres de expresión regular de uso común:

metacarácter describir
. coincide con cualquier carácter excepto nueva línea
^ coincide con el comienzo de la cadena
ps coincide con el final de la cadena
* coincide con cero o más apariciones del carácter anterior
+ coincide con una o más apariciones del carácter anterior
? coincide con cero o una aparición del carácter anterior
{norte} Coincide exactamente con n ocurrencias del carácter anterior
{norte,} Coincide con al menos n ocurrencias del carácter anterior
{Nuevo Méjico} Coincide con n a m ocurrencias del carácter anterior
[…] coincide con cualquier carácter en el conjunto de caracteres
[^…] coincide con cualquier carácter que no esté en el juego de caracteres
( ) Crear un grupo de captura
| Haga coincidir cualquier expresión en los lados izquierdo y derecho
\ caracteres especiales de escape

3. Operaciones comunes de expresiones regulares

3.1 Cadenas coincidentes

Utilice re.match()funciones para comprobar si una cadena coincide con un patrón. El código de ejemplo es el siguiente:

import re

pattern = r"hello"
string = "hello world"

match = re.match(pattern, string)
if match:
    print("匹配成功")
else:
    print("匹配失败")

3.2 Buscar coincidencia

Utilice re.search()funciones para buscar en una cadena subcadenas que coincidan con un patrón. El código de ejemplo es el siguiente:

import re

pattern = r"world"
string = "hello world"

match = re.search(pattern, string)
if match:
    print("匹配成功")
else:
    print("匹配失败")

3.3 Encuentra todas las coincidencias

Utilice re.findall()la función para buscar todas las subcadenas que coincidan con un patrón en una cadena y devolver una lista. El código de ejemplo es el siguiente:

import re

pattern = r"\d+"
string = "abc 123 def 456"

matches = re.findall(pattern, string)
print(matches)

3.4 Correspondencia de reemplazo

Utilice re.sub()la función para reemplazar la subcadena que coincide con un cierto patrón en la cadena con la cadena especificada. El código de ejemplo es el siguiente:

import re

pattern = r"\d+"
string = "abc 123 def 456"

new_string =

 re.sub(pattern, "999", string)
print(new_string)

4. Aplicación avanzada de expresiones regulares

4.1 Coincidencia y extracción de grupos

Use corchetes ()para definir grupos, y el contenido de los grupos se puede extraer después de una coincidencia exitosa. El código de ejemplo es el siguiente:

import re

pattern = r"(\d{4})-(\d{2})-(\d{2})"
string = "2022-05-01"

match = re.match(pattern, string)
if match:
    year = match.group(1)
    month = match.group(2)
    day = match.group(3)
    print(f"年份:{
      
      year},月份:{
      
      month},日期:{
      
      day}")

4.2 Emparejamiento no codicioso

Las expresiones regulares utilizan de forma predeterminada la coincidencia codiciosa, que coincide con tantos caracteres como sea posible. Pero a veces necesitamos hacer coincidencias no codiciosas, es decir, hacer coincidir la menor cantidad de caracteres posible. Agregue después del cuantificador ?para lograr una coincidencia no codiciosa. El código de ejemplo es el siguiente:

import re

pattern = r"<.*?>"
string = "<a>hello</a><b>world</b>"

matches = re.findall(pattern, string)
print(matches)

5. Mejores prácticas y preguntas frecuentes sobre expresiones regulares

  • Trate de usar cadenas originales: cuando defina expresiones regulares, intente usar cadenas originales (es decir, agréguelas delante de la cadena r) para evitar el problema de los caracteres de escape.

  • Use expresiones regulares precompiladas: si necesita usar la misma expresión regular varias veces, puede usar re.compile()funciones para precompilar para mejorar la eficiencia de coincidencia.

  • Preste atención a la diferencia entre la coincidencia codiciosa y la coincidencia no codiciosa: la coincidencia codiciosa coincidirá con la mayor cantidad de caracteres posible, y la coincidencia no codiciosa coincidirá con la menor cantidad de caracteres posible, y elija el método de coincidencia adecuado según las necesidades específicas.

  • .Use metacaracteres con moderación : .se puede hacer coincidir cualquier carácter, pero a veces es posible que no se incluyan líneas nuevas. Las banderas se pueden utilizar re.DOTALLpara incluir saltos de línea.

  • Manejar casos extremos: al escribir expresiones regulares, tenga en cuenta los casos extremos, como cadenas vacías, caracteres especiales al principio y al final, etc.

en conclusión

Este tutorial presenta los conceptos básicos y las operaciones comunes de las expresiones regulares en Python. Al aprender la sintaxis y el uso de expresiones regulares, puede procesar datos de texto de manera más flexible y resolver varios problemas de coincidencia de patrones, búsqueda, reemplazo y extracción. Espero que este tutorial sea útil para su aprendizaje y aplicación de expresiones regulares, ¡y deseo que avance más y más en el camino del procesamiento de texto!

Supongo que te gusta

Origin blog.csdn.net/mingfeng4923/article/details/131135997
Recomendado
Clasificación