Syntaxe des Expressions Régulières et Motifs de Base
Glissez pour afficher le menu
Syntaxe des expressions régulières : éléments de base
Les expressions régulières, ou regex, sont construites à l'aide d'une combinaison de littéraux, de métacaractères, de classes de caractères et de quantificateurs. Comprendre ces composants est essentiel pour écrire des motifs efficaces.
- Les littéraux sont des caractères ordinaires qui correspondent à eux-mêmes. Par exemple, le motif
"cat"correspond exactement à la chaîne"cat"; - Les métacaractères sont des symboles spéciaux qui ont des significations particulières en regex. Les métacaractères les plus courants incluent :
.(point) : correspond à n'importe quel caractère unique sauf un saut de ligne ;^: correspond au début d'une chaîne ;$: correspond à la fin d'une chaîne ;*: correspond à zéro ou plusieurs occurrences de l'élément précédent ;+: correspond à une ou plusieurs occurrences de l'élément précédent ;?: correspond à zéro ou une occurrence de l'élément précédent.
- Les classes de caractères permettent de faire correspondre un caractère parmi un ensemble de caractères. Par exemple,
[abc]correspond à"a","b"ou"c", et[0-9]correspond à n'importe quel chiffre de 0 à 9.
Métacaractères et quantificateurs basés sur les lettres utiles
\w: correspond à tout caractère de mot (équivalent à[a-zA-Z0-9_]). À utiliser pour faire correspondre une lettre, un chiffre ou un souligné ;\W: correspond à tout caractère non-mot (tout ce qui n'est pas couvert par\w) ;\d: correspond à tout chiffre (équivalent à[0-9]) ;\D: correspond à tout caractère non-chiffre ;\b: correspond à une frontière de mot (la position entre un caractère de mot et un caractère non-mot). À utiliser pour faire correspondre des mots entiers ;\B: correspond à une position n'étant pas une frontière de mot.
Quantificateurs
Les quantificateurs précisent combien de fois l'élément précédent doit apparaître :
*: correspond à zéro ou plusieurs fois ; par exemple,\w*correspond à toute séquence de caractères de mot, y compris une chaîne vide ;+: correspond à une ou plusieurs fois ; par exemple,\w+correspond à une ou plusieurs lettres consécutives (comme un mot) ;?: correspond à zéro ou une fois ; par exemple,\w?correspond à zéro ou un caractère de mot ;{n}: correspond exactement n fois ; par exemple,\w{3}correspond exactement à trois caractères de mot consécutifs ;{n,}: correspond à n ou plus fois ; par exemple,\w{2,}correspond à deux caractères de mot ou plus ;{n,m}: correspond à entre n et m fois ; par exemple,\w{2,5}correspond à deux à cinq caractères de mot consécutifs.
Exemples en Python
re.findall(r"\w+", "Regex123 is fun!")retourne tous les mots :["Regex123", "is", "fun"];re.findall(r"\bcat\b", "The cat scattered the catalog.")correspond uniquement au mot isolé"cat";re.findall(r"\w{5}", "apple banana kiwi")trouve toutes les séquences de cinq caractères de mot exactement :["apple", "banan"].
Ces métacaractères et quantificateurs sont essentiels pour faire correspondre des lettres, des mots et des motifs similaires à des mots dans un texte à l'aide de la bibliothèque re de Python.
123456789101112131415import re text = "User123, admin42, guestX" # Find all digits digits = re.findall(r"[0-9]", text) print("Digits found:", digits) # Find all lowercase letters lowercase_letters = re.findall(r"[a-z]", text) print("Lowercase letters found:", lowercase_letters) # Find all uppercase letters uppercase_letters = re.findall(r"[A-Z]", text) print("Uppercase letters found:", uppercase_letters)
Dans cet exemple, la fonction re.findall() est utilisée pour rechercher des correspondances dans la chaîne "User123, admin42, guestX". Le motif [0-9] correspond à tout chiffre entre 0 et 9, ce qui permet de trouver tous les chiffres individuels dans le texte. Le motif [a-z] correspond à toute lettre minuscule de "a" à "z", et [A-Z] correspond à toute lettre majuscule de "A" à "Z". Chaque classe de caractères est placée entre crochets, ce qui précise l'ensemble ou la plage de caractères à faire correspondre. Ces motifs sont fondamentaux pour extraire des types spécifiques de caractères d'un texte.
123456789101112131415161718192021222324252627import re text = "Hello_123 world! Regex is fun." # \w matches any word character (alphanumeric or underscore) word_chars = re.findall(r"\w", text) print("Word characters (\\w):", word_chars) # \W matches any non-word character non_word_chars = re.findall(r"\W", text) print("Non-word characters (\\W):", non_word_chars) # \b matches word boundaries words = re.findall(r"\b\w+\b", text) print("Words using word boundaries (\\b):", words) # * quantifier: zero or more word characters after 'o' pattern_star = re.findall(r"o\w*", text) print("'o' followed by zero or more word characters (o\\w*):", pattern_star) # + quantifier: one or more word characters after 'R' pattern_plus = re.findall(r"R\w+", text) print("'R' followed by one or more word characters (R\\w+):", pattern_plus) # ? quantifier: 'l' optionally followed by 'e' pattern_question = re.findall(r"le?", text) print("'l' optionally followed by 'e' (le?):", pattern_question)
Voici comment utiliser la fonction re.findall() de Python avec différents motifs regex pour extraire des informations de la chaîne "Hello_123 world! Regex is fun.". Voici ce que fait chaque motif :
-
\w: Le motifr"\w"correspond à tout caractère de mot, ce qui inclut les lettres (majuscules et minuscules), les chiffres et le souligné (_). Dans la chaîne donnée, cela trouve chaque caractère de mot individuel, comme'H','e','l','o','1','2','3', etc. -
\W: Le motifr"\W"correspond à tout caractère non-mot. Cela inclut les espaces, la ponctuation et les symboles qui ne sont pas des lettres, des chiffres ou des soulignés. Dans la chaîne, cela trouve des caractères comme les espaces, le point d'exclamation (!) et le point (.). -
\b: Le motifr"\b\w+\b"utilise les frontières de mot (\b) pour correspondre à des mots complets. Ici,\w+correspond à un ou plusieurs caractères de mot, donc cela extrait des mots entiers comme'Hello_123','world','Regex','is'et'fun'comme éléments séparés. -
*quantificateur : Le motifr"o\w*"correspond au caractère'o'suivi de zéro ou plusieurs caractères de mot. Cela signifie qu'il correspondra à'o'même s'il n'est suivi d'aucun caractère de mot, ou il capturera une séquence commençant par'o'et continuant avec tous les caractères de mot suivants. Dans la chaîne, cela trouve'o_123'(de'Hello_123') et'orld'(de'world'). -
+quantificateur : Le motifr"R\w+"correspond au caractère'R'suivi d'un ou plusieurs caractères de mot. Ceci est utile pour trouver des mots qui commencent par'R'et continuent avec d'autres caractères de mot. Dans la chaîne, cela trouve'Regex'. -
?quantificateur : Le motifr"le?"correspond à la lettre'l'éventuellement suivie de'e'. Le quantificateur?signifie que le caractère précédent ('e') peut apparaître zéro ou une fois. Ce motif correspondra à la fois à'l'et à'le'partout où ils apparaissent dans la chaîne.
Chacun de ces motifs met en évidence une fonctionnalité clé des expressions régulières—correspondance de types de caractères spécifiques, de frontières et d'éléments répétés—ce qui facilite l'extraction ou l'analyse d'informations à partir de texte en Python.
Merci pour vos commentaires !
Demandez à l'IA
Demandez à l'IA
Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion
Syntaxe des Expressions Régulières et Motifs de Base
Syntaxe des expressions régulières : éléments de base
Les expressions régulières, ou regex, sont construites à l'aide d'une combinaison de littéraux, de métacaractères, de classes de caractères et de quantificateurs. Comprendre ces composants est essentiel pour écrire des motifs efficaces.
- Les littéraux sont des caractères ordinaires qui correspondent à eux-mêmes. Par exemple, le motif
"cat"correspond exactement à la chaîne"cat"; - Les métacaractères sont des symboles spéciaux qui ont des significations particulières en regex. Les métacaractères les plus courants incluent :
.(point) : correspond à n'importe quel caractère unique sauf un saut de ligne ;^: correspond au début d'une chaîne ;$: correspond à la fin d'une chaîne ;*: correspond à zéro ou plusieurs occurrences de l'élément précédent ;+: correspond à une ou plusieurs occurrences de l'élément précédent ;?: correspond à zéro ou une occurrence de l'élément précédent.
- Les classes de caractères permettent de faire correspondre un caractère parmi un ensemble de caractères. Par exemple,
[abc]correspond à"a","b"ou"c", et[0-9]correspond à n'importe quel chiffre de 0 à 9.
Métacaractères et quantificateurs basés sur les lettres utiles
\w: correspond à tout caractère de mot (équivalent à[a-zA-Z0-9_]). À utiliser pour faire correspondre une lettre, un chiffre ou un souligné ;\W: correspond à tout caractère non-mot (tout ce qui n'est pas couvert par\w) ;\d: correspond à tout chiffre (équivalent à[0-9]) ;\D: correspond à tout caractère non-chiffre ;\b: correspond à une frontière de mot (la position entre un caractère de mot et un caractère non-mot). À utiliser pour faire correspondre des mots entiers ;\B: correspond à une position n'étant pas une frontière de mot.
Quantificateurs
Les quantificateurs précisent combien de fois l'élément précédent doit apparaître :
*: correspond à zéro ou plusieurs fois ; par exemple,\w*correspond à toute séquence de caractères de mot, y compris une chaîne vide ;+: correspond à une ou plusieurs fois ; par exemple,\w+correspond à une ou plusieurs lettres consécutives (comme un mot) ;?: correspond à zéro ou une fois ; par exemple,\w?correspond à zéro ou un caractère de mot ;{n}: correspond exactement n fois ; par exemple,\w{3}correspond exactement à trois caractères de mot consécutifs ;{n,}: correspond à n ou plus fois ; par exemple,\w{2,}correspond à deux caractères de mot ou plus ;{n,m}: correspond à entre n et m fois ; par exemple,\w{2,5}correspond à deux à cinq caractères de mot consécutifs.
Exemples en Python
re.findall(r"\w+", "Regex123 is fun!")retourne tous les mots :["Regex123", "is", "fun"];re.findall(r"\bcat\b", "The cat scattered the catalog.")correspond uniquement au mot isolé"cat";re.findall(r"\w{5}", "apple banana kiwi")trouve toutes les séquences de cinq caractères de mot exactement :["apple", "banan"].
Ces métacaractères et quantificateurs sont essentiels pour faire correspondre des lettres, des mots et des motifs similaires à des mots dans un texte à l'aide de la bibliothèque re de Python.
123456789101112131415import re text = "User123, admin42, guestX" # Find all digits digits = re.findall(r"[0-9]", text) print("Digits found:", digits) # Find all lowercase letters lowercase_letters = re.findall(r"[a-z]", text) print("Lowercase letters found:", lowercase_letters) # Find all uppercase letters uppercase_letters = re.findall(r"[A-Z]", text) print("Uppercase letters found:", uppercase_letters)
Dans cet exemple, la fonction re.findall() est utilisée pour rechercher des correspondances dans la chaîne "User123, admin42, guestX". Le motif [0-9] correspond à tout chiffre entre 0 et 9, ce qui permet de trouver tous les chiffres individuels dans le texte. Le motif [a-z] correspond à toute lettre minuscule de "a" à "z", et [A-Z] correspond à toute lettre majuscule de "A" à "Z". Chaque classe de caractères est placée entre crochets, ce qui précise l'ensemble ou la plage de caractères à faire correspondre. Ces motifs sont fondamentaux pour extraire des types spécifiques de caractères d'un texte.
123456789101112131415161718192021222324252627import re text = "Hello_123 world! Regex is fun." # \w matches any word character (alphanumeric or underscore) word_chars = re.findall(r"\w", text) print("Word characters (\\w):", word_chars) # \W matches any non-word character non_word_chars = re.findall(r"\W", text) print("Non-word characters (\\W):", non_word_chars) # \b matches word boundaries words = re.findall(r"\b\w+\b", text) print("Words using word boundaries (\\b):", words) # * quantifier: zero or more word characters after 'o' pattern_star = re.findall(r"o\w*", text) print("'o' followed by zero or more word characters (o\\w*):", pattern_star) # + quantifier: one or more word characters after 'R' pattern_plus = re.findall(r"R\w+", text) print("'R' followed by one or more word characters (R\\w+):", pattern_plus) # ? quantifier: 'l' optionally followed by 'e' pattern_question = re.findall(r"le?", text) print("'l' optionally followed by 'e' (le?):", pattern_question)
Voici comment utiliser la fonction re.findall() de Python avec différents motifs regex pour extraire des informations de la chaîne "Hello_123 world! Regex is fun.". Voici ce que fait chaque motif :
-
\w: Le motifr"\w"correspond à tout caractère de mot, ce qui inclut les lettres (majuscules et minuscules), les chiffres et le souligné (_). Dans la chaîne donnée, cela trouve chaque caractère de mot individuel, comme'H','e','l','o','1','2','3', etc. -
\W: Le motifr"\W"correspond à tout caractère non-mot. Cela inclut les espaces, la ponctuation et les symboles qui ne sont pas des lettres, des chiffres ou des soulignés. Dans la chaîne, cela trouve des caractères comme les espaces, le point d'exclamation (!) et le point (.). -
\b: Le motifr"\b\w+\b"utilise les frontières de mot (\b) pour correspondre à des mots complets. Ici,\w+correspond à un ou plusieurs caractères de mot, donc cela extrait des mots entiers comme'Hello_123','world','Regex','is'et'fun'comme éléments séparés. -
*quantificateur : Le motifr"o\w*"correspond au caractère'o'suivi de zéro ou plusieurs caractères de mot. Cela signifie qu'il correspondra à'o'même s'il n'est suivi d'aucun caractère de mot, ou il capturera une séquence commençant par'o'et continuant avec tous les caractères de mot suivants. Dans la chaîne, cela trouve'o_123'(de'Hello_123') et'orld'(de'world'). -
+quantificateur : Le motifr"R\w+"correspond au caractère'R'suivi d'un ou plusieurs caractères de mot. Ceci est utile pour trouver des mots qui commencent par'R'et continuent avec d'autres caractères de mot. Dans la chaîne, cela trouve'Regex'. -
?quantificateur : Le motifr"le?"correspond à la lettre'l'éventuellement suivie de'e'. Le quantificateur?signifie que le caractère précédent ('e') peut apparaître zéro ou une fois. Ce motif correspondra à la fois à'l'et à'le'partout où ils apparaissent dans la chaîne.
Chacun de ces motifs met en évidence une fonctionnalité clé des expressions régulières—correspondance de types de caractères spécifiques, de frontières et d'éléments répétés—ce qui facilite l'extraction ou l'analyse d'informations à partir de texte en Python.
Merci pour vos commentaires !