J'ai laissé ChatGPT écrire des expressions régulières pour moi
Table of Contents
My Table of Contents for the article on basic regular expressions in Python is as follows:
- 📌 Introduction
- 📌 What are Regular Expressions?
- 📌 Commonly Used Functions in Regular Expressions
- r e dot compile
- search dot match
- dot find all
- dot split
- 📌 Using Regular Expressions to Match Email Addresses
- Example 1: Matching Email Address Patterns
- Example 2: Testing Different Email Addresses
- 📌 Using Regular Expressions to Match Social Security Numbers
- Example 1: Matching SSN Patterns
- Example 2: Testing Different SSN Numbers
- 📌 Splitting Strings with Regular Expressions
- Example: Extracting Values Before a Space
- Using Regular Expressions in Other Languages
- 📌 Applying Regular Expressions to Python Data Frames
- Example: Creating a New Column with Regex Apply Function
- Using Dot Extract Function to Separate Values
- 📌 Conclusion
Introduction
Dans cet article, nous aborderons les expressions régulières de base en Python. Les expressions régulières, ou regex, sont des outils puissants pour le traitement de motifs et de chaînes de caractères. Cependant, ils peuvent parfois être délicats à maîtriser. Vous allez découvrir comment utiliser les expressions régulières dans Python en demandant à ChatGPT de fournir des exemples et des patterns pour diverses tâches courantes.
What are Regular Expressions?
Les expressions régulières (regex) sont des outils puissants utilisés pour rechercher et filtrer des motifs au sein de chaînes de caractères. Elles permettent de spécifier des règles complexes pour trouver et manipuler des portions de texte. En utilisant des caractères spéciaux et des métacaractères, vous pouvez créer des motifs flexibles et puissants pour correspondre à des modèles spécifiques.
Commonly Used Functions in Regular Expressions
Les expressions régulières utilisent plusieurs fonctions couramment utilisées en Python pour effectuer des opérations de recherche et de correspondance. Voici les cinq fonctions les plus couramment utilisées :
re.compile()
: Cette fonction permet de compiler un motif d'expression régulière en un objet de modèle qui peut être réutilisé pour effectuer des recherches ultérieures.
search()
: Cette fonction recherche la première occurrence d'un motif dans une chaîne de caractères donnée.
match()
: Cette fonction recherche un motif au début d'une chaîne de caractères.
findall()
: Cette fonction trouve toutes les occurrences d'un motif dans une chaîne de caractères et renvoie les résultats sous forme de liste.
split()
: Cette fonction divise une chaîne de caractères en fonction d'un motif donné et renvoie les résultats sous forme de liste.
Using Regular Expressions to Match Email Addresses
Dans cette section, nous allons voir comment utiliser les expressions régulières pour faire correspondre des adresses e-mail. ChatGPT nous fournira un exemple de motif d'expression régulière qui correspondra à la plupart des adresses e-mail.
Example 1: Matching Email Address Patterns
Voici un exemple de motif d'expression régulière fourni par ChatGPT qui peut correspondre à la plupart des adresses e-mail :
[email protected]
Ce motif peut être utilisé pour vérifier si une chaîne de caractères est une adresse e-mail valide. Cependant, il convient de noter que ce motif ne correspondra pas à toutes les adresses e-mail, car il existe de nombreuses variations possibles. Pour une validation plus détaillée, il est recommandé d'utiliser une bibliothèque ou un service spécialisé.
Example 2: Testing Different Email Addresses
Utilisons maintenant le motif d'expression régulière fourni par ChatGPT pour tester différentes adresses e-mail à l'Aide de Python et de la bibliothèque Pandas.
import pandas as pd
import re
# Charger les données depuis un fichier Excel
df = pd.read_excel("sample_data.xlsx")
# Utiliser l'expression régulière pour rechercher les adresses e-mail
pattern = r'[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+'
for index, row in df.iterrows():
test_string = row['Email']
match_result = re.findall(pattern, test_string)
print(f"Test string: {test_string}")
print(f"Matched value: {match_result}\n")
Ce code utilise la bibliothèque Pandas pour charger les données depuis un fichier Excel. Ensuite, il utilise l'expression régulière pour rechercher les adresses e-mail dans chaque ligne du fichier. Les adresses e-mail correspondantes sont imprimées à l'écran.
Using Regular Expressions to Match Social Security Numbers
Dans cette section, nous allons utiliser les expressions régulières pour faire correspondre des numéros de sécurité sociale (SSN). ChatGPT nous fournira un exemple de motif d'expression régulière qui correspondra à la plupart des SSN.
Example 1: Matching SSN Patterns
Voici un exemple de motif d'expression régulière fourni par ChatGPT qui peut correspondre à la plupart des numéros de sécurité sociale :
\d{3}-\d{2}-\d{4}
Ce motif peut être utilisé pour vérifier si une chaîne de caractères correspond à un numéro de sécurité sociale valide. Cependant, il est important de noter que le format réel des SSN peut varier d'un pays à l'autre. Il est donc recommandé de l'ajuster en fonction des formats spécifiques.
Example 2: Testing Different SSN Numbers
Utilisons maintenant le motif d'expression régulière fourni par ChatGPT pour tester différents numéros de sécurité sociale à l'aide de Python et de la bibliothèque Pandas.
import pandas as pd
import re
# Charger les données depuis un fichier Excel
df = pd.read_excel("sample_data.xlsx")
# Utiliser l'expression régulière pour rechercher les numéros de sécurité sociale
pattern = r'\d{3}-\d{2}-\d{4}'
for index, row in df.iterrows():
test_string = row['SSN']
match_result = re.findall(pattern, test_string)
print(f"Test string: {test_string}")
print(f"Matched value: {match_result}\n")
Ce code utilise la bibliothèque Pandas pour charger les données depuis un fichier Excel. Ensuite, il utilise l'expression régulière pour rechercher les numéros de sécurité sociale dans chaque ligne du fichier. Les numéros de sécurité sociale correspondants sont imprimés à l'écran.
Splitting Strings with Regular Expressions
Dans cette section, nous allons voir comment utiliser les expressions régulières pour diviser une chaîne de caractères en utilisant un espace comme séparateur. ChatGPT nous fournira un exemple de motif d'expression régulière pour extraire la valeur avant l'espace.
Example: Extracting Values Before a Space
Voici un exemple de motif d'expression régulière fourni par ChatGPT pour extraire la valeur avant un espace :
(\w+)
Ce motif peut être utilisé pour extraire la partie de la chaîne de caractères qui se trouve avant le premier espace. Utilisons ce motif dans Python en utilisant la bibliothèque Pandas pour tester le code :
import pandas as pd
import re
# Charger les données depuis un fichier Excel
df = pd.read_excel("sample_data.xlsx")
# Utiliser l'expression régulière pour extraire les valeurs
pattern = r'(\w+)'
df['Value Before Space'] = df['Text'].str.extract(pattern)
print(df.head())
Ce code utilise la bibliothèque Pandas pour charger les données depuis un fichier Excel. Ensuite, il utilise l'expression régulière pour extraire la partie de la chaîne de caractères avant le premier espace dans la colonne "Text". Les valeurs extraites sont ajoutées à une nouvelle colonne "Value Before Space" dans le DataFrame.
Applying Regular Expressions to Python Data Frames
Dans cette section, nous allons voir comment appliquer les expressions régulières à un dataframe en Python. ChatGPT fournira un exemple complet avec un dataframe de test.
Example: Creating a New Column with Regex Apply Function
Voici un exemple complet fourni par ChatGPT pour appliquer une expression régulière à un dataframe Python et créer une nouvelle colonne à partir des résultats.
import pandas as pd
import re
# Créer un dataframe de test
data = {'Name': ['John Doe', 'Jane Smith', 'Bob Johnson'],
'Age': [25, 30, 35],
'City': ['New York', 'Paris', 'London']}
df = pd.DataFrame(data)
# Appliquer l'expression régulière à une colonne et créer une nouvelle colonne
df['New Column'] = df['Name'].apply(lambda x: re.sub(r'\s', '_', x))
print(df.head())
Ce code crée un dataframe de test avec trois colonnes : "Name", "Age" et "City". Ensuite, il utilise la méthode apply
pour appliquer une expression régulière à la colonne "Name" et créer une nouvelle colonne "New Column" avec les résultats correspondants. Dans cet exemple, nous remplaçons simplement les espaces par des underscores.
Using Dot Extract Function to Separate Values
Nous pouvons également utiliser la fonction str.extract
de la bibliothèque Pandas pour extraire les valeurs correspondant à un motif d'expression régulière dans plusieurs colonnes.
import pandas as pd
# Créer un dataframe de test
data = {'Text': ['abc 123', 'def 456', 'ghi 789']}
df = pd.DataFrame(data)
# Extraire les valeurs avant et après l'espace dans deux nouvelles colonnes
df[['Before Space', 'After Space']] = df['Text'].str.extract(r'(\w+)\s(\w+)')
print(df.head())
Ce code crée un dataframe de test avec une colonne "Text" contenant des chaînes de caractères contenant un espace. En utilisant la fonction str.extract
et un motif d'expression régulière, nous extrayons les valeurs avant et après l'espace dans deux nouvelles colonnes "Before Space" et "After Space".
Conclusion
Dans cet article, nous avons exploré les bases des expressions régulières en Python. Nous avons appris à utiliser les différentes fonctions couramment utilisées dans les expressions régulières pour effectuer des opérations de recherche, de correspondance et de division. Vous avez également découvert comment appliquer ces techniques à des cas concrets, tels que la correspondance d'adresses e-mail et de numéros de sécurité sociale, ainsi que la création de nouvelles colonnes dans un dataframe. Les expressions régulières sont un outil essentiel pour le traitement de texte et la manipulation de données. Avec de la pratique, vous pouvez devenir un expert dans leur utilisation.