Méthode re.search() de Python

Python re 模块Module re de Python


re.search()est Pythonremodule utilisé pourrechercher des motifsfonction qui, dans une chaîne,parcourt et trouvela première position correspondant à l'expression régulière spécifiée.

etre.match()Contrairement à,re.search()Il n'est pas nécessaire de faire correspondre depuis le début de la chaîne ; une correspondance sera trouvée à n'importe quelle position dans la chaîne.

Signification du mot: searchsignifie rechercher et trouver.


Syntaxe de base et paramètres

re.search()est une fonction au niveau du module, directement viareappel de module.

Format de syntaxe

re.search(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 à rechercher, dans laquelle trouver une correspondance.
  • indicateurs:
    • Type : entier (int, facultatif)
    • Description : drapeaux d'expression régulière utilisés pour contrôler le mode de correspondance. Tels quere.IGNORECASE、re.MULTILINEetc.

Description de la fonction

  • Valeur de retour: Si une correspondance est trouvée, renvoie unmatchobjet ; si aucune correspondance n'est trouvée, renvoieNone。
  • Effet: Renvoie les informations de position de la première correspondance, y compris le contenu correspondant, la position de début et la position de fin.

Exemples

Maîtrisons à fond, à travers une série d'exemples du plus simple au plus complexe,re.search()l'utilisation.

Exemple 1 : Utilisation de base - Trouver la première correspondance

Exemple

import re

# Rechercher dans la chaîne le premier nombre correspondant
text = "Python 3.9 est la version la plus couramment utilisée"
result = re.search(r'\d+\.\d+', text)

if result:
    print("Correspondance trouvée :", result.group())  # Sortie : 3.9
    print("Position de début de correspondance :", result.start())  # Sortie : 7
    print("Position de fin de correspondance :", result.end())  # Sortie : 10

Sortie attendue :

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

Explication du code :

  1. r'\d+\.\d+'Correspond à un ou plusieurs chiffres, suivi d'un point, puis d'un ou plusieurs chiffres (format de numéro de version).
  2. re.search()Renvoie l'objet de la position de la première correspondance.
  3. result.group()Renvoie le contenu textuel correspondant.
  4. result.start()etresult.end()Renvoie l'index de position de la correspondance.

Exemple 2 : Trouver une correspondance à n'importe quelle position

re.search()Il peut rechercher à n'importe quelle position dans la chaîne ; c'est sare.match()principale différence.

Exemple

import re

text = "Mon numéro de téléphone est 138-1234-5678, son numéro de téléphone est 139-9876-5432"

# Trouver le premier numéro de téléphone
result = re.search(r'\d{3}-\d{4}-\d{4}', text)

if result:
    print("Premier numéro de téléphone :", result.group())

Sortie attendue :

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

Explication du code :

  • \d{3}-\d{4}-\d{4}Correspond au format de numéro de téléphone chinois (3 chiffres - 4 chiffres - 4 chiffres).
  • re.search()Renvoie dès que la première correspondance est trouvée ; il ne continue pas à chercher.

Exemple 3 : Utiliser des indicateurs pour ignorer la casse

En utilisantflagsle paramètre, vous pouvez modifier le comportement de correspondance, par exemple en ignorant la casse.

Exemple

import re

text = "Python est un langage de programmation puissant"

# Utiliser re.IGNORECASE pour ignorer la casse
result = re.search(r'python', text, re.IGNORECASE)

if result:
    print("Trouvé :", result.group())  # Sortie : Python

Sortie attendue :

找到: Python

Explication du code :

  • re.IGNORECASERend la correspondance insensible à la casse, ce qui permet de faire correspondre "Python".

Exemple 4 : Extraire le contenu d'un groupe

Parenthèses()peut créer des groupes pour extraire des parties spécifiques d'intérêt.

Exemple

import re

text = "E-mail de l'utilisateur : [email protected]"

# Utiliser les groupes pour extraire le nom d'utilisateur et le domaine
result = re.search(r'(\w+)@(\w+\.\w+)', text)

if result:
    print("Correspondance complète :", result.group())      # [email protected]
    print("Groupe 1 :", result.group(1))    # user
    print("Groupe 2 :", result.group(2))    # example.com

Sortie attendue :

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

Explication du code :

  • Parenthèses()créer deux groupes.
  • result.group(1)etresult.group(2)Extraire le contenu des deux groupes respectivement.

Python re 模块Module re de Python

Autres extensions