Expressions régulières Python simplifiées

Les expressions régulières (regex) sont des outils puissants utilisés pour faire correspondre et manipuler des chaînes en fonction de modèles. En Python, le module re prend en charge les expressions régulières, ce qui vous permet d'effectuer efficacement des opérations complexes sur les chaînes. Cet article vous présentera les bases des expressions régulières et vous montrera comment les utiliser efficacement en Python.

Premiers pas avec le module re

Pour utiliser des expressions régulières en Python, vous devez importer le module re. Ce module fournit plusieurs fonctions permettant de travailler avec des modèles d'expressions régulières:

  • re.match() - Vérifie une correspondance uniquement au début de la chaîne.
  • re.search() - Recherche une correspondance dans la chaîne entière.
  • re.findall() - Recherche toutes les correspondances dans la chaîne et les renvoie sous forme de liste.
  • re.sub() - Remplace les correspondances dans la chaîne par un remplacement spécifié.

Recherche de motifs de base

Les expressions régulières utilisent des caractères spéciaux pour définir des modèles de recherche. Voici quelques modèles de base:

  • . - Correspond à n'importe quel caractère unique, à l'exception du saut de ligne.
  • \d - Correspond à n'importe quel chiffre (équivalent à [0-9]).
  • \w - Correspond à n'importe quel caractère alphanumérique (équivalent à [a-zA-Z0-9_]).
  • \s ​​- Correspond à n'importe quel caractère d'espace.
  • ^ - Correspond au début de la chaîne.
  • $ - Correspond à la fin de la chaîne.

Exemples

Voici quelques exemples illustrant la correspondance de motifs de base:

import re

# Match a pattern at the beginning of a string
result = re.match(r'Hello', 'Hello, World!')
print(result.group())  # Output: Hello

# Search for a pattern in the entire string
result = re.search(r'\d+', 'There are 24 hours in a day.')
print(result.group())  # Output: 24

Utilisation d'expressions régulières avec des groupes

Les groupes sont utilisés pour capturer des parties du texte correspondant. Ils sont définis à l'aide de parenthèses. Par exemple, pour extraire des parties spécifiques d'un motif, vous pouvez utiliser des groupes:

pattern = r'(\d{3})-(\d{2})-(\d{4})'
text = 'My number is 123-45-6789.'

# Find all matches with groups
match = re.search(pattern, text)
if match:
    print(f'Area Code: {match.group(1)}')  # Output: 123
    print(f'Prefix: {match.group(2)}')     # Output: 45
    print(f'Suffix: {match.group(3)}')     # Output: 6789

Utilisation de caractères spéciaux

Les expressions régulières incluent plusieurs caractères spéciaux pour une correspondance de modèles plus complexe:

  • * - Correspond à 0 ou plusieurs occurrences de l'élément précédent.
  • + - Correspond à 1 ou plusieurs occurrences de l'élément précédent.
  • ? - Correspond à 0 ou 1 occurrence de l'élément précédent.
  • {n} - Correspond exactement à n occurrences de l'élément précédent.
  • | - Correspond soit au modèle avant, soit au modèle après.

Exemples

Voici quelques exemples utilisant des caractères spéciaux:

# Match a pattern with 0 or more occurrences
result = re.findall(r'\d*', '123 abc 456')
print(result)  # Output: ['123', '', '', '456']

# Match a pattern with 1 or more occurrences
result = re.findall(r'\d+', 'There are 24 apples and 3 oranges.')
print(result)  # Output: ['24', '3']

Remplacement de texte par des expressions régulières

La fonction re.sub() est utilisée pour remplacer des parties de la chaîne qui correspondent à un modèle:

text = 'The rain in Spain falls mainly in the plain.'

# Replace 'Spain' with 'France'
new_text = re.sub(r'Spain', 'France', text)
print(new_text)  # Output: The rain in France falls mainly in the plain.

Conclusion

Les expressions régulières sont un outil puissant pour la recherche de motifs et la manipulation de texte en Python. Avec le module re, vous pouvez rechercher, faire correspondre et remplacer du texte en fonction de motifs complexes. En comprenant la syntaxe de base et les caractères spéciaux, vous pouvez exploiter les expressions régulières pour gérer efficacement un large éventail de tâches de traitement de texte.