Método Python re.fullmatch()

Python re 模块Módulo re de Python


re.fullmatch()es Pythonreen el módulo que se utiliza parala coincidencia completafunción de toda la cadena.

yre.match()A diferencia,re.fullmatch()requiere que toda la cadena coincida completamente con la expresión regular, no solo desde el principio.

Definición de la palabra: full matchsignifica coincidencia completa.


Sintaxis básica y parámetros

re.fullmatch()es una función a nivel de módulo, que se llama directamente a través derela llamada al módulo.

Formato de sintaxis

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

Descripción de parámetros

  • pattern:
    • Tipo: cadena (str)
    • Descripción: el patrón de expresión regular que se debe coincidir.
  • string:
    • Tipo: cadena (str)
    • Descripción: la cadena que se va a comparar.
  • flags:
    • Tipo: entero (int, opcional)
    • Descripción: banderas de la expresión regular.

Descripción de la función

  • Valor de retorno: si toda la cadena coincide, devuelvematchobjeto; de lo contrario, devuelveNone。
  • Característica: requiere que la cadena coincida completamente de principio a fin, sin permitir caracteres sobrantes.

Ejemplo

Vamos a dominar mediante una serie de ejemplosre.fullmatch()el uso de.

Ejemplo 1: Uso básico - Coincidencia completa

Ejemplo

import re

# Coincidencia completa de toda la cadena
text = "hello"

result = re.fullmatch(r'hello', text)

if result:
    print("Coincidencia completa exitosa:", result.group())

Resultado esperado:

完整匹配成功: hello

Análisis del código:

  • re.fullmatch()Requiere que la cadena "hello" coincida completamente con el patrón "hello".
  • La coincidencia es exitosa, devuelve un objeto match.

Ejemplo 2: Caso en el que falla la coincidencia completa

Si la cadena tiene caracteres sobrantes, la coincidencia falla.

Ejemplo

import re

text = "hello world"

# Intenta coincidir completamente con "hello"
result = re.fullmatch(r'hello', text)

if result:
    print("Coincidencia exitosa:", result.group())
else:
    print("Coincidencia fallida: la cadena no es exactamente igual a 'hello'")

Resultado esperado:

匹配失败: 字符串不是完全等于 'hello'

Análisis del código:

  • La cadena "hello world" contiene más caracteres y no puede coincidir completamente con "hello".
  • En este caso,fullmatchdevuelveNone。

Ejemplo 3: Uso de patrones de expresiones regulares

fullmatchSoporta la sintaxis completa de expresiones regulares.

Ejemplo

import re

# Coincidencia completa de dígitos
text = "12345"

result = re.fullmatch(r'\d+', text)

if result:
    print("Coincidencia de dígitos:", result.group())

# Coincidencia completa de letras
text2 = "abc"

result2 = re.fullmatch(r'[a-z]+', text2)

if result2:
    print("Coincidencia de letras:", result2.group())

Resultado esperado:

数字匹配: 12345
字母匹配: abc

Ejemplo 4: Validación de un formato fijo

fullmatchSe usa a menudo para validar si la entrada cumple un formato específico.

Ejemplo

import re

# Validar formato de número de teléfono
phone = "138-1234-5678"

result = re.fullmatch(r'\d{3}-\d{4}-\d{4}', phone)

if result:
    print(f"El número de teléfono {phone} tiene el formato correcto")
else:
    print(f"El número de teléfono {phone} tiene el formato incorrecto")

# Validar formato de correo electrónico
email = "[email protected]"

result2 = re.fullmatch(r'\w+@\w+\.\w+', email)

if result2:
    print(f"El correo {email} tiene el formato correcto")
else:
    print(f"El correo {email} tiene el formato incorrecto")

Resultado esperado:

手机号 138-1234-5678 格式正确
邮箱 [email protected] 格式正确

Análisis del código:

  • fullmatchEs muy adecuado para escenarios de validación de datos.
  • Solo cuando la cadena cumple completamente el formato, la coincidencia tiene éxito.

Ejemplo 5: Comparación entre match y fullmatch

Ejemplo

import re

text = "hello world"

# match solo coincide desde el principio
match_result = re.match(r'hello', text)

# fullmatch requiere una coincidencia completa
fullmatch_result = re.fullmatch(r'hello', text)

print("Resultado de match:", match_result.group() if match_result else None)
print("Resultado de fullmatch:", fullmatch_result.group() if fullmatch_result else None)

print("-" * 20)

# Intenta coincidir completamente con toda la cadena
text2 = "hello"

match_result2 = re.match(r'hello', text2)
fullmatch_result2 = re.fullmatch(r'hello', text2)

print("Resultado de match:", match_result2.group() if match_result2 else None)
print("Resultado de fullmatch:", fullmatch_result2.group() if fullmatch_result2 else None)

Resultado esperado:

match 结果: hello
fullmatch 结果: None
--------------------
match 结果: hello
fullmatch 结果: hello

Análisis del código:

  • re.match()Coincide desde el principio de la cadena, no requiere coincidencia completa.
  • re.fullmatch()Requiere que toda la cadena coincida completamente de principio a fin.

Ejemplo 6: Uso de grupos

Ejemplo

import re

text = "2024-04-02"

# Usar grupos para coincidir completamente una fecha
result = re.fullmatch(r'(\d{4})-(\d{2})-(\d{2})', text)

if result:
    print("Coincidencia completa:", result.group())
    print("Año:", result.group(1))
    print("Mes:", result.group(2))
    print("Día:", result.group(3))

Resultado esperado:

完整匹配: 2024-04-02
年: 2024
月: 04
日: 02

Python re 模块Módulo re de Python

Otras extensiones