Guide des expressions régulières Version 3.8.7rc1 Guido van Rossum and the Pyth
Guide des expressions régulières Version 3.8.7rc1 Guido van Rossum and the Python development team décembre 19, 2020 Python Software Foundation Email : docs@python.org Table des matières 1 Introduction 2 2 Motifs simples 2 2.1 Correspondance de caractères . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 2.2 Répétitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 3 Utilisation des expressions régulières 4 3.1 Compilation des expressions régulières . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 3.2 La maudite barre oblique inverse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 3.3 Recherche de correspondances . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 3.4 Fonctions de niveau module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 3.5 Options de compilation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 4 Des motifs plus puissants 10 4.1 Plus de métacaractères . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 4.2 Regroupement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 4.3 Groupes non de capture et groupes nommés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 4.4 Assertions prédictives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 5 Modification de chaînes 15 5.1 Découpage de chaînes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 5.2 Recherche et substitution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 6 Problèmes classiques 17 6.1 Utilisez les méthodes du type string . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 6.2 match() contre search() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 6.3 Glouton contre non-glouton . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 6.4 Utilisez re.VERBOSE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 7 Vos commentaires 19 Auteur A.M. Kuchling <amk@amk.ca> 1 Résumé Ce document constitue un guide d’introduction à l’utilisation des expressions régulières en Python avec le module re. Il fournit une introduction plus abordable que la section correspondante dans le guide de référence de la bibliothèque. 1 Introduction Les expressions régulières (notées RE ou motifs regex dans ce document) sont essentiellement un petit langage de programmation hautement spécialisé embarqué dans Python et dont la manipulation est rendue possible par l’utilisa- tion du module re. En utilisant ce petit langage, vous définissez des règles pour spécifier une correspondance avec un ensemble souhaité de chaînes de caractères; ces chaînes peuvent être des phrases, des adresses de courriel, des commandes TeX ou tout ce que vous voulez. Vous pouvez ensuite poser des questions telles que ”Est-ce que cette chaîne de caractères correspond au motif?” ou ”Y a-t-il une correspondance pour ce motif à l’intérieur de la chaîne de caractères?”. Vous pouvez aussi utiliser les RE pour modifier une chaîne de caractères ou la découper de différentes façons. Un motif d’expression régulière est compilé en code intermédiaire (bytecode en anglais) qui est ensuite exécuté par un moteur de correspondance écrit en C. Pour une utilisation plus poussée, il peut s’avérer nécessaire de s’intéresser à la manière dont le moteur exécute la RE afin d’écrire une expression dont le code intermédiaire est plus rapide. L’opti- misation n’est pas traitée dans ce document, parce qu’elle nécessite d’avoir une bonne compréhension des mécanismes internes du moteur de correspondance. Le langage des expressions régulières est relativement petit et restreint, donc toutes les tâches de manipulation de chaînes de caractères ne peuvent pas être réalisées à l’aide d’expressions régulières. Il existe aussi des tâches qui peuvent être réalisées à l’aide d’expressions régulières mais qui ont tendance à produire des expressions régulières très compliquées. Dans ces cas, il est plus utile d’écrire du code Python pour réaliser le traitement; même si le code Python est plus lent qu’une expression régulière élaborée, il sera probablement plus compréhensible. 2 Motifs simples Nous commençons par étudier les expressions régulières les plus simples. Dans la mesure où les expressions régu- lières sont utilisées pour manipuler des chaînes de caractères, nous commençons par l’action la plus courante : la correspondance de caractères. Pour une explication détaillée sur le concept informatique sous-jacent aux expressions régulières (automate à états déterministe ou non-déterministe), vous pouvez vous référer à n’importe quel manuel sur l’écriture de compilateurs. 2.1 Correspondance de caractères La plupart des lettres ou caractères correspondent simplement à eux-mêmes. Par exemple, l’expression régulière test correspond à la chaîne de caractères test, précisément. Vous pouvez activer le mode non-sensible à la casse qui permet à cette RE de correspondre également à Test ou TEST (ce sujet est traité par la suite). Il existe des exceptions à cette règle; certains caractères sont des métacaractères spéciaux et ne correspondent pas à eux-mêmes. Au lieu de cela, ils signalent que certaines choses non ordinaires doivent correspondre, ou ils affectent d’autre portions de la RE en les répétant ou en changeant leur sens. Une grande partie de ce document est consacrée au fonctionnement de ces métacaractères. Voici une liste complète des métacaractères; leur sens est décrit dans la suite de ce guide. . ^ $ * + ? { } [ ] \ | ( ) Les premiers métacaractères que nous étudions sont [ et ]. Ils sont utilisés pour spécifier une classe de caractères, qui forme un ensemble de caractères dont vous souhaitez trouver la correspondance. Les caractères peuvent être listés 2 individuellement, ou une plage de caractères peut être indiquée en fournissant deux caractères séparés par un ’-’‘. Par exemple, [abc] correspond à n’importe quel caractère parmi a, b, ou c; c’est équivalent à [a-c], qui utilise une plage pour exprimer le même ensemble de caractères. Si vous voulez trouver une chaîne qui ne contient que des lettres en minuscules, la RE est [a-z]. Les métacaractères ne sont pas actifs dans les classes. Par exemple, [akm$] correspond à n’importe quel caractère parmi 'a', 'k', 'm' ou '$'; '$' est habituellement un métacaractère mais dans une classe de caractères, il est dépourvu de sa signification spéciale. Vous pouvez trouver une correspondance avec les caractères non listés uploads/s3/ howto-regex.pdf
Documents similaires










-
23
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Nov 28, 2021
- Catégorie Creative Arts / Ar...
- Langue French
- Taille du fichier 0.1330MB