Introduction
L’utilisation des expressions régulières reste l’une des techniques les plus sous-estimées en matière de manipulation et de recherche de texte. En raison de sa syntaxe peu commune, elle peut sembler à première vue obscure à de nombreux novices (et nous ne pouvons pas les blâmer !).
Cependant, avec un certain nombre d’outils utiles et quelques exemples pour vous familiariser avec la technique, les regex deviennent beaucoup plus intuitives et ouvrent de nombreuses possibilités pour manipuler le texte. Et c’est exactement ce que nous souhaitons partager dans cet article de blog.
Note : Nous ferons référence à la UltraEdit Masterclass sur les Regex pour ce blog. N’hésitez pas à lire ce blog parallèlement à la rediffusion du webinaire.
Pourquoi utiliser les expressions régulières ?
Les expressions régulières vous offrent un autre moyen de filtrer et de rechercher des chaînes de caractères spécifiques en utilisant la correspondance de motifs et la manipulation de texte. Il s’agit d’un outil polyvalent qui vous permet de définir des modèles de recherche complexes pour faire correspondre des séquences de caractères dans des chaînes.
Elle est particulièrement utile si vous ne souhaitez pas définir exactement chaque chaîne, mais que vous savez qu’elles suivent un certain modèle ou format. Par exemple, une adresse électronique ou un numéro de téléphone qui aurait un format « [email protected] » ou « +09-87654321 », respectivement.
En résumé, les expressions régulières constituent une technique de recherche de motifs principalement utilisée pour :
- Valider l’existence d’un texte
- Valider le format d’un texte
- Recherche et extraction de texte
Cette flexibilité fait des regex des outils idéaux pour les opérations de recherche complexes qui dépassent les capacités des simples fonctions de recherche de chaînes de caractères. Par exemple, les expressions rationnelles peuvent valider des données telles que des adresses électroniques, extraire des URL d’un texte, reformater un texte existant ou remplacer des motifs spécifiques par un nouveau texte, ce qui est particulièrement efficace pour traiter les données d’entrée.
Différence entre les regex et les chaînes de caractères régulières pour la recherche/code
Par rapport aux opérations de recherche et de filtrage normales, les expressions rationnelles offrent une plus grande souplesse et une plus grande complexité, vous permettant de définir des motifs complexes avec des éléments optionnels, des répétitions et des classes de caractères.
Toutefois, cette puissance s’accompagne de compromis en termes de performances et de lisibilité. Les expressions rationnelles peuvent être plus lentes, en particulier lorsqu’il s’agit de motifs complexes et de grands ensembles de données, et leur syntaxe peut être difficile à comprendre.
Alors que les expressions rationnelles conviennent mieux aux tâches nécessitant une recherche avancée de motifs, les opérations de recherche et de filtrage normales sont plus intuitives et plus efficaces pour les recherches directes et les correspondances exactes. L’astuce consiste à déterminer où et comment vous devez utiliser les expressions rationnelles par rapport aux chaînes de caractères régulières.
Protip: Pour comprendre ce que fait chaque partie de la regex, expérimentez avec un testeur de regex.
L’application web regex101. Cet outil peut être utilisé pour décrire des parties d’une expression rationnelle.
Exemple 1 : Extraction de dates à l’aide d’expressions régulières en Python
Dans cet exemple, nous utilisons à la fois des expressions rationnelles et des chaînes de caractères manuelles pour extraire les dates d’une phrase.
import re text = "The event is scheduled for 2023-10-01 and 2023-11-15." pattern = r"\b\d{4}-\d{2}-\d{2}\b" dates = re.findall(pattern, text) print("Dates found:", dates)
Utilisation d’une expression rationnelle pour faire correspondre des sections de texte suivant le modèle aaaa-mm-jj.
text = "The event is scheduled for 2023-10-01 and 2023-11-15." words = text.split() dates = [] for word in words: if len(word) == 10 and word[4] == '-' and word[7] == '-': try: year, month, day = map(int, word.split('-')) dates.append(word) except ValueError: continue print("Dates found:", dates)
Utiliser la recherche manuelle de chaînes de caractères. Cette méthode de force brute analyse toute la ligne de texte et vérifie si elle respecte le format de date – ce n’est pas la solution la plus optimale, mais elle fonctionne.
Exemple 2 : Validation d’une entrée (email) avec une expression rationnelle en Python
Dans cet exemple, nous utilisons à la fois des expressions rationnelles et des chaînes de caractères manuelles pour tenter de valider une adresse électronique.
import re email = "[email protected]" pattern = r"^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$" if re.match(pattern, email): print("Valid email address") else: print("Invalid email address")
Cette méthode utilise une expression rationnelle pour faire correspondre le nom d’utilisateur et le domaine de l’adresse électronique.
email = "[email protected]" if "@" in email and "." in email.split("@")[1]: print("Valid email address") else: print("Invalid email address")/code>
Cet exemple utilise le découpage de chaînes et des instructions « if » pour valider les courriels. Il s’agit d’une solution plus simple que le dernier exemple en raison de la structure prévisible des adresses électroniques.
Résumé:
Ces deux exemples montrent comment les expressions rationnelles et les chaînes de caractères régulières permettent d’obtenir le même résultat. Toutefois, il est important de vérifier d’abord le type de données que vous traitez et le résultat que vous souhaitez obtenir. Les deux méthodes fonctionnent, mais l’une peut être plus complexe que l’autre.
Le premier exemple avec l’email montre comment une expression regex peut facilement remplacer plusieurs lignes et opérations sur les chaînes de caractères. D’un autre côté, le deuxième exemple avec la validation du courrier électronique montre que les opérations sur les chaînes de caractères régulières peuvent parfois être moins complexes et plus faciles à utiliser que les expressions rationnelles.
Plus d’exemples de regex + démo webinaire
Voici d’autres exemples qui illustrent des scénarios d’utilisation des expressions rationnelles. Ils utilisent des fichiers réels et des formats de texte courants que vous pouvez rencontrer au quotidien. Cela devrait vous donner une idée plus claire de la manière dont vous pouvez utiliser les expressions rationnelles au maximum de leur potentiel.
L’exposé suivant présente un outil appelé UltraEdit (UE), un éditeur de texte pratique qui intègre la prise en charge de la recherche et du remplacement par expressions rationnelles. Il s’agit d’un outil polyvalent pour les développeurs, qui peut être utilisé pour éditer du code, écrire des scripts et effectuer des manipulations de texte complexes à l’aide d’expressions rationnelles, en particulier sur des fichiers volumineux.
Si vous souhaitez voir d’autres exemples d’utilisation des expressions régulières dans le monde réel, nous vous recommandons de regarder le webinaire « UltraEdit Masterclass : The Regex Toolkit You’ll Actually Use », qui se concentre sur l’exploration des expressions régulières compatibles avec Perl à l’aide d’exemples pratiques et concrets.
Si vous souhaitez tester ces exemples par vous-même, voici les fichiers d’exemple utilisés dans le webinaire. Voici un résumé de la session :
- Opérations de recherche et de remplacement
- Recherche et remplacement Regex : Modifier les balises HTML
- Regex Rechercher & Remplacer : Nettoyer le format des données
- Scripts Regex : Automatisez les tâches répétitives à l’aide de scripts
- Cas d’utilisation pratiques : analyse des journaux
- Cas d’utilisation pratiques : validation des données
- Cas d’utilisation pratiques : manipulation de texte
- Autres exemples utilisant des expressions rationnelles de type Perl
Exemple 3 : Extraire des dates et des numéros de contact d’un texte à l’aide d’UltraEdit
Celui-ci utilise une expression rationnelle similaire à celle des deux premiers exemples sur un bloc de texte, montrant ainsi sa souplesse d’utilisation avec différents types de données d’entrée. Regardez-le en action.
\d{2}\/\d{2}\/\d{4}
Regex pour trouver des dates dans le texte
\$?\d{1,3}(?:\d{3})*(?:\,\d{2})?
Règle combinatoire permettant de faire correspondre des valeurs monétaires, spécifiquement formatées en dollars américains.
Exemple 4 : Suppression des balises, attributs et valeurs HTML (<>,</>) du texte dans UltraEdit
<[^>|+>
Expression rationnelle simple utilisée pour remplacer toutes les occurrences de texte entre les carets (par exemple, < p> text < p/>) afin de transformer le code HTML en texte brut. La capture d’écran montre l’application web regex101 intégrée en tant que fenêtre dans l’éditeur UE.
Exemple 5 : Correspondance des champs .csv et permutation de leurs positions
For Find: ^((?:[^,]+?,){1})([^,]+?,) For replace/swap: \2\1
Ces deux expressions rationnelles recherchent les deux premiers champs d’un fichier .csv et échangent leurs positions. Utilise la regex Find and Replace.
Résumé:
L’exemple 3 montre l’adaptabilité des expressions rationnelles à différents types d’entrée, puisque vous pouvez extraire des dates et des numéros de contact indépendamment de la longueur et de la structure du texte. L’exemple 4 se concentre sur la suppression des balises HTML pour convertir le contenu HTML en texte brut. Enfin, l’exemple 5 consiste à trouver et à intervertir les positions des champs dans un fichier CSV, ce qui met en évidence la capacité des expressions rationnelles à reformater et à organiser les données.
Les trois derniers exemples montrent à quel point les opérations regex peuvent être flexibles. Ils montrent comment, lorsqu’elles sont correctement paramétrées, elles peuvent parcourir des blocs de données non structurées et trouver avec précision ce que vous recherchez.
D’autres expressions de regex courantes ont été partagées lors du webinaire.
Autres outils pratiques pour traiter les expressions rationnelles :
- Regx101 (Testeur de regex)
- Regexr (Testeur de regex)
- Premiers pas avec Perl regex dans UE
- Constructeur d’expressions régulières de l’UE
- Aide-mémoire sur les expressions rationnelles
- Correction des expressions rationnelles
- Aide-mémoire sur les expressions rationnelles à saveur européenne
Conclusion
En conclusion, les expressions régulières sont un outil puissant qui peut grandement améliorer votre capacité à manipuler et à analyser des données textuelles.
Qu’il s’agisse de simples tâches de recherche et de remplacement ou de validation et d’analyse de données complexes, les expressions rationnelles offrent une solution polyvalente à un large éventail de défis. Que vous soyez un développeur cherchant à rationaliser votre code ou un analyste de données cherchant à extraire des informations significatives de données brutes, la maîtrise des regex peut considérablement augmenter votre productivité et votre efficacité.
Alors que vous continuez à explorer les capacités des expressions rationnelles, n’oubliez pas que la pratique et l’expérimentation sont essentielles pour en exploiter tout le potentiel. Pour ceux qui souhaitent aller plus loin, vous pouvez visionner la vidéo webinaire pour des exemples pratiques et concrets et des conseils d’experts. Et pour les débutants, ne manquez pas la section consacrée aux Utilisation de modèles d’IA et de LLM pour créer des regex pour vous !
Et si vous travaillez avec du texte et que vous souhaitez expérimenter les regex plus en détail, découvrez UltraEdit et utilisez-le pour augmenter votre productivité.
Téléchargez UltraEdit pour une version d’essai gratuite de 30 jours.











0 commentaires