Método Python re.search()

Python re 模块Módulo re de Python


re.search()es Pythonremódulo utilizado parabuscar patronesla función, buscará en la cadenaescaneando y buscandola primera posición que coincida con la expresión regular especificada.

yre.match()A diferencia de,re.search()No requiere que la coincidencia comience desde el inicio de la cadena; buscará coincidencias en cualquier posición de la cadena.

Definición de la palabra: searchsignifica buscar y encontrar.


Sintaxis básica y parámetros

re.search()es una función de nivel de módulo, que se invoca directamente a través delremódulo.

Formato de sintaxis

re.search(pattern, string, flags=0)

Descripción de parámetros

  • pattern:
    • Tipo: cadena (str)
    • Descripción: el patrón de expresión regular a coincidir.
  • string:
    • Tipo: cadena (str)
    • Descripción: la cadena a buscar, en la que se encuentra la coincidencia.
  • flags:
    • Tipo: entero (int, opcional)
    • Descripción: banderas de expresión regular para controlar el modo de coincidencia. Comore.IGNORECASE、re.MULTILINEetc.

Descripción de la función

  • Valor de retorno: si se encuentra una coincidencia, devuelve unmatchobjeto; si no se encuentra ninguna coincidencia, devuelveNone。
  • Efecto: devuelve la información de posición de la primera coincidencia, incluidos el contenido coincidente, la posición inicial y la posición final.

Ejemplo

A través de una serie de ejemplos de simples a complejos, dominemos a fondore.search()el uso de.

Ejemplo 1: Uso básico - Encontrar la primera coincidencia

Ejemplo

import re

# Buscar el primer número que coincida en la cadena
text = "Python 3.9 es la versión más utilizada"
result = re.search(r'\d+\.\d+', text)

if result:
    print("Coincidencia encontrada:", result.group())  # Salida: 3.9
    print("Posición inicial de la coincidencia:", result.start())  # Salida: 7
    print("Posición final de la coincidencia:", result.end())  # Salida: 10

Resultado esperado de la ejecución:

找到匹配: 3.9
匹配起始位置: 7
匹配结束位置: 10

Análisis del código:

  1. r'\d+\.\d+'Coincide con uno o más dígitos, seguidos de un punto y luego uno o más dígitos (formato de número de versión).
  2. re.search()Devuelve el objeto de la primera posición coincidente.
  3. result.group()Devuelve el contenido de texto coincidente.
  4. result.start()yresult.end()Devuelve el índice de posición de la coincidencia.

Ejemplo 2: Encontrar coincidencias en cualquier posición

re.search()Puede buscar en cualquier posición de la cadena, esta es sure.match()principal diferencia.

Ejemplo

import re

text = "Mi número de teléfono es 138-1234-5678, el suyo es 139-9876-5432"

# Buscar el primer número de teléfono
result = re.search(r'\d{3}-\d{4}-\d{4}', text)

if result:
    print("Primer número de teléfono:", result.group())

Resultado esperado de la ejecución:

第一个手机号: 138-1234-5678

Análisis del código:

  • \d{3}-\d{4}-\d{4}Coincide con el formato de número de teléfono chino (3 dígitos-4 dígitos-4 dígitos).
  • re.search()Devuelve la primera coincidencia encontrada y no continúa buscando.

Ejemplo 3: Usar banderas para ignorar mayúsculas y minúsculas

Medianteflagsel parámetro se puede cambiar el comportamiento de coincidencia, como ignorar mayúsculas y minúsculas.

Ejemplo

import re

text = "Python is a Powerful Programming Language"

# Usar re.IGNORECASE para ignorar mayúsculas y minúsculas
result = re.search(r'python', text, re.IGNORECASE)

if result:
    print("Encontrado:", result.group())  # Salida: Python

Resultado esperado de la ejecución:

找到: Python

Análisis del código:

  • re.IGNORECASEHace que la coincidencia no distinga entre mayúsculas y minúsculas, por lo que puede coincidir con "Python".

Ejemplo 4: Extraer contenido de grupos

Usando paréntesis()se pueden crear grupos para extraer las partes específicas de interés.

Ejemplo

import re

text = "Correo del usuario: [email protected]"

# Usar grupos para extraer el nombre de usuario y el dominio
result = re.search(r'(\w+)@(\w+\.\w+)', text)

if result:
    print("Coincidencia completa:", result.group())      # [email protected]
    print("Grupo 1:", result.group(1))    # user
    print("Grupo 2:", result.group(2))    # example.com

Resultado esperado de la ejecución:

完整匹配: [email protected]
第1个分组: user
第2个分组: example.com

Análisis del código:

  • Los paréntesis()crearon dos grupos.
  • result.group(1)yresult.group(2)Extraen respectivamente el contenido de los dos grupos.

Python re 模块Módulo re de Python

Otras extensiones