Méthode re.fullmatch() de Python

Python re 模块Module re de Python


re.fullmatch()est uneremodule utilisé pourfaire correspondre entièrementune fonction pour toute la chaîne.

etre.match()Contrairement à,re.fullmatch()il exige que toute la chaîne corresponde entièrement à l'expression régulière, pas seulement à partir du début.

Signification du mot: full matchsignifie correspondance complète.


Syntaxe de base et paramètres

re.fullmatch()est une fonction au niveau du module, appelée directement viarele module.

Format de syntaxe

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

Description du paramètre

  • pattern:
    • Type : chaîne (str)
    • Description : Le motif d'expression régulière à faire correspondre.
  • string:
    • Type : chaîne (str)
    • Description : La chaîne à faire correspondre.
  • indicateurs:
    • Type : entier (int, facultatif)
    • Description : Options d'expression régulière.

Description de la fonction

  • Valeur de retour: Si toute la chaîne correspond, renvoiematchobjet ; sinon renvoieNone。
  • Fonctionnalité: nécessite que la chaîne corresponde complètement du début à la fin, aucun caractère supplémentaire autorisé.

Exemples

Maîtrisons à travers une série d'exemplesre.fullmatch()l'utilisation de.

Exemple 1 : Utilisation de base - Correspondance complète

Exemple

import re

# Faire correspondre entièrement toute la chaîne
text = "hello"

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

if result:
    print("Correspondance complète réussie :", result.group())

Sortie attendue :

完整匹配成功: hello

Explication du code :

  • re.fullmatch()Nécessite que la chaîne "hello" corresponde entièrement au motif "hello".
  • La correspondance réussit, renvoyant un objet de correspondance.

Exemple 2 : Cas d'échec de correspondance complète

Si la chaîne contient des caractères supplémentaires, la correspondance échouera.

Exemple

import re

text = "hello world"

# Essayer de faire correspondre entièrement "hello"
result = re.fullmatch(r'hello', text)

if result:
    print("Correspondance réussie :", result.group())
else:
    print("Échec de la correspondance : la chaîne n'est pas exactement égale à 'hello'")

Sortie attendue :

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

Explication du code :

  • La chaîne "hello world" contient plus de caractères, elle ne peut donc pas correspondre entièrement à "hello".
  • Dans ce cas,fullmatchrenvoieNone。

Exemple 3 : Utilisation de motifs d'expressions régulières

fullmatchPrend en charge la syntaxe complète des expressions régulières.

Exemple

import re

# Correspondance complète des chiffres
text = "12345"

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

if result:
    print("Correspondance de chiffres :", result.group())

# Correspondance complète des lettres
text2 = "abc"

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

if result2:
    print("Correspondance de lettre :", result2.group())

Sortie attendue :

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

Exemple 4 : Validation de formats fixes

fullmatchSouvent utilisé pour valider si une entrée est conforme à un format spécifique.

Exemple

import re

# Valider le format du numéro de téléphone
phone = "138-1234-5678"

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

if result:
    print(f"Le format du numéro de téléphone {phone} est correct")
else:
    print(f"Le format du numéro de téléphone {phone} est incorrect")

# Valider le format de l'e-mail
email = "[email protected]"

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

if result2:
    print(f"Le format de l'adresse e-mail {email} est correct")
else:
    print(f"Le format de l'adresse e-mail {email} est incorrect")

Sortie attendue :

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

Explication du code :

  • fullmatchTrès adapté aux scénarios de validation de données.
  • Ce n'est que lorsque la chaîne est entièrement conforme au format que la correspondance réussit.

Exemple 5 : Comparaison de match et fullmatch

Exemple

import re

text = "hello world"

# match ne correspond qu'à partir du début
match_result = re.match(r'hello', text)

# fullmatch nécessite une correspondance complète
fullmatch_result = re.fullmatch(r'hello', text)

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

print("-" * 20)

# Essayer de faire correspondre entièrement toute la chaîne
text2 = "hello"

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

print("résultat de la correspondance :", match_result2.group() if match_result2 else None)
print("résultat de la correspondance complète :", fullmatch_result2.group() if fullmatch_result2 else None)

Sortie attendue :

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

Explication du code :

  • re.match()Il suffit que cela corresponde à partir du début de la chaîne ; une correspondance complète n'est pas nécessaire.
  • re.fullmatch()Exige que toute la chaîne corresponde entièrement du début à la fin.

Exemple 6 : Utilisation des groupes

Exemple

import re

text = "2024-04-02"

# Utiliser des groupes pour faire correspondre entièrement une date
result = re.fullmatch(r'(\d{4})-(\d{2})-(\d{2})', text)

if result:
    print("Correspondance complète :", result.group())
    print("Year:", result.group(1))
    print("Month:", result.group(2))
    print("Day:", result.group(3))

Sortie attendue :

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

Python re 模块Module re de Python

Autres extensions