Introduction
Bienvenue à l'école de sorcellerie et de magie d'Hogwarts, où les plus brillants esprits du monde magique se rassemblent pour plonger dans les profondeurs de la sorcellerie. Parmi ces couloirs et chambres cachées, se trouve un défi que même les plus expérimentés sorciers trouvent perplexe : maîtriser l'art arcan de l'expression régulière Python.
Dans cet environnement enchanté, nous rencontrons notre protagoniste, un talentueux artisan de baguettes magiques connu pour créer les baguettes les plus complexes et puissantes. Ces baguettes ne sont pas seulement des outils, mais elles contiennent les traditions et les secrets du monde magique antique. Pour répondre aux exigences élevées de personnalisation et d'intrication, l'artisan de baguettes a recours aux expressions régulières Python pour rationaliser la gravure des runes et les formules d'enchantement.
L'objectif est clair : apprendre et employer les puissants sorts des expressions régulières Python pour aider notre artisan de baguettes à organiser et traiter plus efficacement les textes et formules magiques. Êtes-vous prêt à relever ce défi et à devenir un magicien des expressions régulières?
Comprendre les motifs de base
Dans cette étape, vous allez découvrir les motifs de base utilisés dans les expressions régulières Python. Avec le bon motif, vous pouvez correspondre, rechercher et filtrer le texte tout comme en lançant un sort précis. Vous allez pratiquer la création d'une expression régulière de base pour identifier les séquences simples de runes dans les designs de baguettes magiques.
Commençons par ouvrir un fichier nommé rune_sequences.py dans le répertoire ~/project et écrire une expression régulière pour trouver toutes les combinaisons de voyelles dans un texte donné.
import re
## Texte d'échantillonnage avec des séquences de runes imaginaires
text = "aeiou aci aeiooo cuii exiovi"
## Motif d'expression régulière pour correspondre à toutes les combinaisons de voyelles
pattern = r"[aeiou]+"
## Recherche de toutes les correspondances en utilisant la méthode 'findall'
matches = re.findall(pattern, text)
print("Combinations de voyelles trouvées :", matches)
Exécutez le code ci-dessus dans votre terminal et observez la sortie.
python rune_sequences.py
La sortie attendue devrait répertorier toutes les combinaisons de voyelles comme ceci :
Combinations de voyelles trouvées : ['aeiou', 'a', 'i', 'aeiooo', 'uii', 'e', 'io', 'i']
Extraire les éléments du cœur de la baguette magique
Maintenant que vous avez maîtrisé la correspondance de motifs de base, passons à quelque chose de plus avancé. L'artisan de baguettes magiques doit extraire les matériaux centraux d'une liste. Chaque cœur de baguette magique est un mot composé, généralement préfixé d'une créature magique et suffixé d'une substance magique.
Ouvrez un fichier nommé wand_cores.py dans le répertoire ~/project et écrivez un motif d'expression régulière pour correspondre et lister les cœurs de baguettes magiques dans le texte fourni.
import re
## Texte avec des informations mêlées, y compris les cœurs de baguettes magiques
text = "dragonheartstring phoenixfeather unicornhair basiliskvenom trollwhisker"
## Motif d'expression régulière pour correspondre aux cœurs de baguettes magiques (mots composés)
pattern = r"\b\w+heartstring|\b\w+feather|\b\w+hair|\b\w+venom|\b\w+whisker"
## Recherche de toutes les correspondances en utilisant la méthode 'findall'
wand_cores = re.findall(pattern, text)
print("Cœurs de baguettes magiques extraits :", wand_cores)
Exécutez le code ci-dessus et vérifiez la liste des cœurs de baguettes magiques.
python wand_cores.py
La sortie attendue devrait afficher les cœurs de baguettes magiques trouvés dans le texte :
Cœurs de baguettes magiques extraits : ['dragonheartstring', 'phoenixfeather', 'unicornhair', 'basiliskvenom', 'trollwhisker']
Valider les phrases d'enchantement
En tant que dernier défi, nous allons valider les phrases utilisées pour enchanter les baguettes magiques. Les phrases doivent suivre un modèle strict : elles doivent commencer par un mot magique, suivi d'un deux-points, puis d'une série de paramètres magiques ou d'incantations séparés par des virgules. Une phrase d'enchantement valide ressemble à 'Lumos:maxima,solemnly,nova'.
Ouvrez enchantment_validator.py dans le répertoire ~/project, et écrivez une fonction qui utilise une expression régulière pour valider une liste de phrases d'enchantement.
import re
def validate_enchantment(phrase):
## Motif d'expression régulière pour correspondre aux phrases d'enchantement valides
pattern = r"^[A-Za-z]+:(?:[A-Za-z]+,)*[A-Za-z]+$"
if re.fullmatch(pattern, phrase):
return True
else:
return False
## Liste de phrases à valider
phrases = [
"Lumos:maxima,solemnly,nova",
"Reducio:shrink,less",
"Protego:maxima",
"Alohomora:",
"Expelliarmus:disarm,fight,duel,"
]
## Valider chaque phrase
for phrase in phrases:
result = validate_enchantment(phrase)
print(f"'{phrase}' est {'valide' si result else 'invalide'}")
Exécutez le code et vérifiez les résultats de validation.
python enchantment_validator.py
La sortie attendue devrait montrer quelles phrases sont valides :
'Lumos:maxima,solemnly,nova' est valide
'Reducio:shrink,less' est valide
'Protego:maxima' est valide
'Alohomora:' est invalide
'Expelliarmus:disarm,fight,duel,' est invalide
Résumé
Dans ce laboratoire, vous avez entrepris un voyage magique à travers l'école de sorcellerie et de magie d'Hogwarts pour maîtriser les sorts des expressions régulières Python. Du décodage des motifs de base dans les séquences de runes à l'extraction des cœurs de baguettes magiques et à la validation des phrases d'enchantement, vous avez affiné vos compétences pour aider l'artisan de baguettes magiques.
L'espoir est que grâce à cette approche pratique, vous avez acquis une compréhension et une appréciation plus profondes du pouvoir et de la polyvalence des expressions régulières dans le traitement de texte. Votre parcours n'a pas seulement enrichi votre répertoire de codage, mais vous a également imprégné de la magie de Python dans le monde des expressions régulières.



