Méthode re.search() 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 que
re.IGNORECASE、re.MULTILINEetc.
Description de la fonction
- Valeur de retour: Si une correspondance est trouvée, renvoie un
matchobjet ; 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
# 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 :
r'\d+\.\d+'Correspond à un ou plusieurs chiffres, suivi d'un point, puis d'un ou plusieurs chiffres (format de numéro de version).re.search()Renvoie l'objet de la position de la première correspondance.result.group()Renvoie le contenu textuel correspondant.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
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
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
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.
Autres extensions
Module re de Python