Skip to main content

Expressions régulières en Python

RegEx in Python: Match, Replace Basics

Les expressions régulières, ou regex en abrégé, sont des outils essentiels dans la boîte à outils du programmeur Python. Elles fournissent un moyen puissant de matcher des motifs dans le texte, permettant aux développeurs de chercher, manipuler et même valider les données de manière efficace. Que vous soyez en train de parcourir des volumes de fichiers journaux, de nettoyer les données saisies par les utilisateurs, ou de rechercher des motifs spécifiques au sein d'un bloc de texte, regex offre un moyen concis et rapide de réaliser le travail.

À sa base, regex en Python est pris en charge par le module re, qui est intégré à la bibliothèque standard. Ce module encapsule toute la fonctionnalité pour les opérations regex, y compris les fonctions de recherche, de division, de remplacement et de compilation des expressions régulières. Comprendre la syntaxe et les caractères spéciaux utilisés dans regex peut initialement sembler intimidant, mais les maîtriser peut considérablement améliorer votre productivité et vos capacités en tant que programmeur.

Dans cet article, nous examinerons les bases de regex, y compris les cas d'utilisation courants, les fonctions clés dans le module re, et quelques conseils pour rendre vos expressions à la fois efficaces et efficientes. Que vous soyez nouveau dans la programmation ou que vous cherchiez à affiner vos compétences en correspondance de motifs, regex en Python est un outil polyvalent qui vaut la peine d'être appris.

Avantages des Expressions Régulières en Python

  • Efficacité dans le Traitement de Texte : Recherche rapide, correspondance, ou remplacement de motifs dans le texte.
  • Polyvalence : De la validation de données au web scraping, regex trouve son application.
  • Syntaxe Simplifiée : Le module re de Python simplifie la mise en œuvre de regex.
  • Puissance de Correspondance de Motifs : Permet de matcher des motifs complexes qui seraient difficiles à trouver avec des méthodes traditionnelles.

Utilisation des Expressions Régulières en Python

Les expressions régulières peuvent être employées dans une myriade de scénarios allant du simple appariement de chaînes à des tâches complexes d'analyse de texte telles que :

  • Validation de données (emails, numéros de téléphone)
  • Web scraping
  • Analyse de fichiers journaux
  • Prétraitement des données textuelles dans les tâches d'apprentissage automatique

Pour ceux qui cherchent à expérimenter avec Python regex en ligne, de nombreuses plateformes et testeurs regex sont disponibles et permettent un retour immédiat et un apprentissage.

Exemple : Adresse Email Trouvée

import re

text = "For more information, contact us at [email protected]."
match = re.findall(r'\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}\b', text)

print("Email Address Found:", match)

Exemple : Valider un numéro de téléphone

import re

def validate_phone_number(number):
    if re.match(r'^\+?1?\d{9,15}$', number):
        return True
    return False

number = "+1234567890"
print("Is Valid Phone Number:", validate_phone_number(number))

Explorer les capacités des expressions régulières en Python ouvre une nouvelle dimension de possibilités pour le traitement de texte et la manipulation de données. Que ce soit par le biais de plateformes en ligne ou de codage pratique, maîtriser regex est une compétence précieuse dans la boîte à outils de tout programmeur.

Fonctionnalités clés de la bibliothèque Regex de Python

  • Regex en Python aide dans la correspondance de motifs, la recherche et la manipulation complexe de texte.
  • La fonctionnalité de limite de mot regex Python (\b) permet des recherches précises en marquant le début ou la fin d'un mot, améliorant l'exactitude de vos tâches de traitement de texte.

Exemple : l'utilisation de findall()

Dans cet exemple, nous utilisons regex pour trouver des occurrences d'un mot spécifique dans un texte, démontrant l'utilisation de la limite de mot regex python.

import re

text = "Python is powerful. Python is easy to learn."
pattern = r'\bPython\b'

matches = re.findall(pattern, text)
print("Occurrences of 'Python':", len(matches))

Exemple : Valider un Email

Ici, nous validons une adresse email en utilisant une expression régulière, mettant en avant la polyvalence des regex en Python.

import re

def validate_email(email):
    pattern = r'^[\w\.-]+@[\w\.-]+\.\w+$'
    if re.match(pattern, email):
        return True
    return False

email = "[email protected]"
print("Is the email valid?", validate_email(email))

Sélecteur Regex

Les fonctions clés dans le module Python re sont match et search, chacune ayant un but distinct dans la correspondance regex.

Match vs. Search

  • correspondance regex python: La fonction re.match() vérifie une correspondance uniquement au début de la chaîne. Si le motif n'est pas au début, elle renvoie None.
  • recherche regex python: Contrairement à match, re.search() scanne toute la chaîne à la recherche d'une correspondance n'importe où dans le texte.

Voici deux exemples démontrant l'utilisation de re.match() et re.search() en Python.

Exemple : Utilisation de re.match()

import re

pattern = r"Python"
text = "Learning Python with regex"

match = re.match(pattern, text)

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

Dans ce scénario, puisque Python n'est pas au début, re.match() renverra No match found.

Exemple : Utilisation de re.search()

import re

pattern = r"Python"
text = "Learning Python with regex"

search = re.search(pattern, text)

if search:
    print("Match found:", search.group())
else:
    print("No match found")

Ici, re.search() scanne toute la chaîne et trouve avec succès Python, retournant Match found: Python.

Comprendre la différence entre match et search dans les correspondances regex Python est crucial pour manipuler et rechercher efficacement des chaînes dans les applications Python.

Remplacement Regex

Vous cherchez à maîtriser l'art du Remplacement Regex Python ? Cette technique puissante vous permet de rechercher des motifs au sein de chaînes et de les remplacer par du texte souhaité, rendant la manipulation des données plus fluide que jamais. Que vous travailliez sur le nettoyage de données, le traitement, ou même le scraping web, comprendre comment utiliser le remplacement de chaîne regex Python peut considérablement améliorer votre efficacité de codage. Voici un guide concis avec des exemples pratiques pour vous lancer :

Utilisation de re.sub() pour Remplacer Tout avec Regex Python

Le module re en Python fournit une méthode appelée sub() qui signifie substituer. C'est la pierre angulaire pour effectuer les opérations python replaceall regex. La syntaxe est simple : re.sub(pattern, replacement, string). Cette méthode recherche le motif dans la chaîne donnée et le remplace par la chaîne de remplacement.

Exemple : Remplacement Simple de Mot

import re

text = "Hello World! Welcome to the World of Python."
new_text = re.sub(r"World", "Universe", text)
print(new_text)

Sortie : Bonjour Univers ! Bienvenue dans l'Univers de Python.

Cet exemple démontre comment remplacer toutes les instances de World par Universe dans la chaîne donnée.

Exemple : Suppression de la ponctuation

import re

text = "Hello, World! How are you today?"
clean_text = re.sub(r"[,!.?]", "", text)
print(clean_text)

Sortie : Hello World How are you today

Ici, nous supprimons efficacement tous les signes de ponctuation communs de notre chaîne, ce qui démontre l'utilité de re.sub() pour le nettoyage de texte.

Maîtriser le remplacement de chaîne Python regex avec la fonction re.sub() offre un moyen flexible et puissant de manipuler des chaînes en Python. Sa capacité à rechercher et remplacer des motifs en fait un outil inestimable pour quiconque cherche à effectuer des tâches de traitement de texte sophistiquées sans effort.

Rappelez-vous, la clé pour maîtriser le remplacement Python avec regex est la pratique. Implémentez ces exemples dans vos projets et vous découvrirez bientôt encore plus de manières de simplifier votre code avec les capacités regex de Python.

Testeur de Regex

Vous recherchez un testeur de regex Python pour valider et affiner vos expressions régulières de manière efficace ? Tester les motifs de regex Python est essentiel dans les tâches de parsing, de nettoyage et de préparation de données. Avec un testeur de regex Python, vous pouvez rapidement tester, déboguer et optimiser vos expressions régulières pour correspondre ou extraire exactement l'ensemble de données dont vous avez besoin.

Exemple : Recherchez des emails par motif

import re

text = "Contact us at [email protected] or [email protected]"
pattern = r"[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}"

# Test Python regex
matches = re.findall(pattern, text)

for match in matches:
    print("Email found:", match)

Exemple : Rechercher des numéros de téléphone par modèle

import re

text = "Reach us at +1-555-123-4567 or +1-555-765-4321"
pattern = r"\+\d{1,3}-\d{3}-\d{3}-\d{4}"

# Python regex tester
matches = re.findall(pattern, text)

for match in matches:
    print("Phone number found:", match)

Ces exemples soulignent l'utilité d'un testeur de regex Python pour extraire et vérifier rapidement les motifs de données. Que vous travailliez sur le scraping de données, la validation ou les tâches de prétraitement, les expressions régulières sont des outils inestimables dans votre boîte à outils Python. En utilisant un testeur de regex Python, vous pouvez vous assurer que vos expressions sont précises, efficaces et prêtes pour tout défi de données.

Maîtriser les Regex Python

Les expressions régulières (regex) en Python sont indispensables pour quiconque a besoin de gérer, rechercher ou manipuler du texte efficacement. Que vous cherchiez à affiner vos compétences en codage ou à rationaliser vos tâches de traitement de données, cette feuille de triche regex Python couvre les motifs essentiels, les fonctions et les conseils pour améliorer votre flux de travail en programmation. Plongeons dans les fonctions de recherche regex Python, comment utiliser la fonction de groupe regex python pour le jumelage de motifs complexes, et où tester vos expressions avec des outils en ligne regex python.

Fonctions Regex Essentielles

  • search(): Trouve la première occurrence d'un motif dans une chaîne. Renvoie un objet de correspondance si trouvé, sinon None.
import re
result = re.search(r'\d+', 'Episode 8: The Last Stand')
print(result.group())  # Output: 8
  • findall() : Renvoie toutes les correspondances non chevauchantes d'un motif dans une chaîne, sous forme de liste de chaînes.
import re
results = re.findall(r'\d+', '3 apples, 5 oranges, 9 berries')
print(results)  # Output: ['3', '5', '9']

Regroupement avec des Parenthèses

Le regroupement dans les expressions régulières vous permet de sélectionner des parties du texte correspondant. Utilisez la méthode group() pour accéder aux motifs correspondants.

import re
pattern = re.compile(r'(\d+)([a-z]+)')
match = pattern.search("123abc")
print(match.group(1))  # Output: 123
print(match.group(2))  # Output: abc

Testez Votre Regex en Ligne

Avant d'intégrer des expressions complexes dans votre code, utilisez un testeur de regex Python en ligne tel que Regex101. Ces outils fournissent un retour en temps réel et des explications utiles sur vos motifs regex et leurs correspondances.

Incorporer ces astuces et fonctions de la feuille de triche regex Python dans votre arsenal de programmation facilitera le traitement de texte et les tâches d'analyse de données. Souvenez-vous, la pratique mène à la perfection, surtout lorsqu'il s'agit de maîtriser l'art du regex en Python.

Méthode split() RegEx

Découvrez comment diviser efficacement des chaînes en Python à l'aide des expressions régulières (regex). Les méthodes de division regex Python permettent des capacités de division de chaînes avancées, au-delà de ce que la fonction basique split() offre. Maîtriser la division regex Python, la division de Python sur regex, ou les techniques de Python divisé par regex peuvent élever vos compétences de manipulation de chaînes en programmation Python.

Pour utiliser la division regex Python, vous devez d'abord importer le module re qui contient la méthode split. Cette méthode puissante vous permet de diviser une chaîne par les occurrences d'un motif défini par regex.

Exemple : Division de la Chaîne par une Virgule Suivie d'un Espace

import re

# Example string
text = "Words, separated, by, commas."
# Splitting the string by comma followed by a space
words = re.split(r',\s', text)

print(words)
# Output: ['Words', 'separated', 'by', 'commas.']

Dans cet exemple, \s est un regex qui correspond à n'importe quel caractère d'espace blanc. Combiné avec ,, il permet de diviser la chaîne partout où une virgule suivie d'un espace est trouvée.

Exemple : Division par plusieurs délimiteurs

import re

# Example string with multiple delimiters
text = "Words; separated by, different. delimiters!"
# Splitting by multiple delimiters: semicolon, comma, and period
words = re.split(r'[;,.]\s', text)

print(words)
# Output: ['Words', 'separated by', 'different', 'delimiters!']

Ici, [;,.] signifie un ensemble de caractères constitué d'un point-virgule, d'une virgule et d'un point. Cela permet la séparation sur l'un de ces caractères suivi d'un espace, montrant ainsi la polyvalence de l'utilisation de la séparation par regex en Python pour des tâches de manipulation de chaînes de caractères plus complexes.

En intégrant la séparation par regex Python dans vos projets, vous débloquez un niveau supérieur de capacité de traitement de chaînes de caractères, permettant des techniques de parsing et de manipulation de données plus précises et variées.

Comment utiliser re.findall()

Découvrir toutes les occurrences qui correspondent à un motif dans une chaîne est une tâche courante dans le traitement et l'analyse de données. Python, avec son écosystème de bibliothèques riche, propose une approche simple à cela via le module re, en particulier lorsqu'on travaille avec des expressions régulières (regex). Dans cet article, nous explorerons comment utiliser les fonctions regex Python pour trouver toutes les correspondances, en nous concentrant sur des tâches courantes comme l'extraction d'emails.

La fonction re.findall() en Python est conçue pour récupérer toutes les correspondances non chevauchantes d'un motif dans une chaîne, les renvoyant sous forme de liste. Cette capacité est incroyablement utile pour des tâches nécessitant une correspondance de motifs comme l'extraction d'adresses email d'un texte.

Méthodes Clés

  • re.findall(pattern, string, flags=0): Recherche dans la chaîne toutes les correspondances du motif et les renvoie sous forme de liste.

Pour une application plus pratique, utilisons re.findall() pour extraire des adresses email d'un texte :

import re

text = "For more information, contact us at [email protected] or [email protected]."
email_pattern = r'[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}'

emails = re.findall(email_pattern, text)
print(emails)
# Output: ['[email protected]', '[email protected]']

RegEx : sub() et search() méthodes

En Python, les regex (expressions régulières) sont utilisées pour la recherche et la manipulation de chaînes de caractères. Deux fonctions puissantes dans ce domaine sont regex.sub() et regex.search(). En les maîtrisant, vous pouvez effectuer efficacement des opérations de substitution et de recherche regex Python dans vos tâches de traitement de texte.

Python Regex Sub re.sub()

La fonction re.sub() en Python est utilisée pour la substitution regex Python. Elle remplace les occurrences d'un modèle dans une chaîne par un remplacement spécifié. Elle est particulièrement utile lorsque vous souhaitez modifier des chaînes de caractères de manière sophistiquée, y compris l'utilisation de groupes de capture sub regex Python pour manipuler des parties spécifiques du texte correspondant.

import re

text = "2024 is the year of code"
# Replace all instances of a digit sequence with 'XXXX'
result = re.sub(r'\d+', 'XXXX', text)
print(result)  # Output: XXXX is the year of code

Recherche Regex en Python

La fonction regex.search() en Python analyse une chaîne de caractères pour trouver le premier emplacement où un motif regex spécifié est trouvé. Elle retourne un objet correspondant si une correspondance est trouvée et None si aucune correspondance n'est trouvée. Cela est parfait pour vérifier la présence de motifs dans des chaînes de caractères.

import re

text = "Reach me at [email protected]"
# Search for an email pattern
match = re.search(r'[\w\.-]+@[\w\.-]+', text)
if match:
    print("Email found:", match.group())  # Output: Email found: [email protected]
else:
    print("No email found.")

En incorporant les techniques de regex.search() aux côtés de la fonctionnalité groupe de sous-capture regex, vous pouvez réaliser une analyse et une manipulation de texte complètes. Ces outils sont essentiels pour le nettoyage de données, l'analyse syntaxique, et des tâches de traitement de texte plus sophistiquées.

Contribuez avec nous!

N'hésitez pas à contribuer aux tutoriels Python sur GitHub : créez un fork, mettez à jour le contenu et émettez une pull request.

Profile picture for user AliaksandrSumich
Python engineer, expert in third-party web services integration.
Mise à jour : 03/05/2024 - 22:50
Profile picture for user angarsky
Examiné et approuvé