Tests de logiciels|Compréhension approfondie de la différence entre re.search() et re.findall() en Python

Insérer la description de l'image ici

Préface

En Python, les expressions régulières sont un outil puissant pour rechercher, faire correspondre et manipuler des modèles dans le texte. Le module re fournit de nombreuses fonctions pour traiter les expressions régulières, parmi lesquelles re.search()et re.findall()sont deux fonctions couramment utilisées pour rechercher des modèles correspondants dans des chaînes. Cet article fournira une introduction approfondie à l'utilisation de ces deux fonctions, ainsi que des exemples d'utilisation détaillés.

fonction re.search()

re.search()La fonction est utilisée pour trouver la première sous-chaîne correspondante dans une chaîne et renvoie un objet correspondant. Si une correspondance est trouvée, des informations pertinentes peuvent être obtenues via les méthodes et propriétés de l'objet correspondant.

import re

pattern = r'apple'
text = "I have an apple and a banana."

# 在文本中查找第一个匹配的子串
match = re.search(pattern, text)

if match:
    print("Found:", match.group())  # 获取匹配的子串
    print("Start:", match.start())  # 获取匹配的起始位置
    print("End:", match.end())      # 获取匹配的结束位置
else:
    print("No match found.")

fonction re.findall()

re.findall()La fonction est utilisée pour rechercher toutes les sous-chaînes correspondantes dans une chaîne et renvoie une liste contenant tous les résultats correspondants.

import re

pattern = r'\d+'  # 匹配一个或多个数字
text = "I have 3 apples and 5 bananas. Total 8 fruits."

# 查找所有匹配的子串
matches = re.findall(pattern, text)

if matches:
    print("Matches:", matches)  # 获取所有匹配的子串列表
else:
    print("No matches found.")

Exemple d'utilisation

  1. re.search()Rechercher une date en utilisant
import re

pattern = r'\d{2}-\d{2}-\d{4}'  # 匹配日期格式:dd-mm-yyyy
text = "Today's date is 31-08-2023."

match = re.search(pattern, text)

if match:
    print("Date found:", match.group())
else:
    print("No date found.")

  1. re.findall()Trouvez tous les liens en utilisant
import re

pattern = r'https?://\S+'  # 匹配HTTP或HTTPS链接
text = "Here are some links: https://www.example.com and http://google.com"

links = re.findall(pattern, text)

if links:
    print("Links found:", links)
else:
    print("No links found.")
  1. re.findall()Rechercher une adresse e-mail en utilisant
import re

pattern = r'\w+@\w+\.\w+'  # 匹配基本电子邮件地址
text = "Contact us at [email protected] or [email protected]"

emails = re.findall(pattern, text)

if emails:
    print("Email addresses found:", emails)
else:
    print("No email addresses found.")

Résumer

re.search()est utilisé pour trouver la première sous-chaîne correspondante, tandis que re.findall() est utilisé pour trouver toutes les sous-chaînes correspondantes. En définissant des règles appropriées dans les modèles d'expressions régulières, nous pouvons trouver et traiter efficacement divers modèles dans le texte. Ces deux fonctions sont des outils importants pour gérer la correspondance et la recherche de texte, et sont très utiles dans le traitement de texte et l'extraction de données.

Je suppose que tu aimes

Origine blog.csdn.net/Tester_muller/article/details/132606170
conseillé
Classement