Grundlagen von Python-Regular Expressions

PythonPythonBeginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

Willkommen an der Hogwarts Schule für Zauberei und Magie, wo die brillantesten Köpfe der magischen Welt zusammenkommen, um in die Tiefen der Magie einzudringen. Unter diesen Gängen und verborgenen Kammern verbirgt sich eine Herausforderung, die selbst die geschicktesten Zauberer verwirrt: Die Meisterung der magischen Kunst der Python-Regular Expressions.

In diesem zauberhaften Umfeld treffen wir unseren Protagonisten, einen begabten Zauberstabmacher, der für die Schaffung der kompliziertesten und mächtigsten Zauberstäbe bekannt ist. Diese Zauberstäbe sind nicht nur Werkzeuge, sondern tragen in sich das Wissen und die Geheimnisse der alten magischen Welt. Um den hohen Anforderungen an die Anpassbarkeit und Komplexität gerecht zu werden, hat der Zauberstabmacher sich auf die Python-Regular Expressions geeinigt, um die Runenätzung und die Beschwörungsphrasen zu vereinfachen.

Das Ziel ist klar: Lernen und anwenden der leistungsvollen Zauber der Python-Regular Expressions, um unserem Zauberstabmacher zu helfen, magische Texte und Formeln effizienter zu organisieren und zu verarbeiten. Kannst du dieser Herausforderung gewachsen sein und ein Regular Expressions-Zauberer werden?


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL python(("Python")) -.-> python/AdvancedTopicsGroup(["Advanced Topics"]) python/AdvancedTopicsGroup -.-> python/regular_expressions("Regular Expressions") subgraph Lab Skills python/regular_expressions -.-> lab-271586{{"Grundlagen von Python-Regular Expressions"}} end

Grundlagen von Mustern verstehen

In diesem Schritt lernst du die Grundmuster, die in Python-Regular Expressions verwendet werden. Mit dem richtigen Muster kannst du Text wie mit einem präzisen Zauber beschwören, suchen und filtern. Du wirst üben, ein grundlegendes reguläres Ausdruck zu erstellen, um einfache Runensequenzen in Zauberstabdesigns zu identifizieren.

Lassen Sie uns beginnen, indem wir eine Datei namens rune_sequences.py im Verzeichnis ~/project öffnen und einen regulären Ausdruck schreiben, um alle Vokal-Kombinationen in einem gegebenen Text zu finden.

import re

## Beispieltext mit imaginären Runensequenzen
text = "aeiou aci aeiooo cuii exiovi"

## Regulärer Ausdrucksmuster, um alle Vokal-Kombinationen zu finden
pattern = r"[aeiou]+"

## Finden aller Treffer mit der Methode 'findall'
matches = re.findall(pattern, text)

print("Vowel combinations found:", matches)

Führen Sie den obigen Code in Ihrem Terminal aus und beobachten Sie die Ausgabe.

python rune_sequences.py

Die erwartete Ausgabe sollte alle Kombinationen von Vokalen wie folgt auflisten:

Vowel combinations found: ['aeiou', 'a', 'i', 'aeiooo', 'uii', 'e', 'io', 'i']

Extraktion von Zauberstabkern-Elementen

Jetzt, da du die grundlegende Mustervergleichsmethode beherrschst, können wir zu etwas Fortgeschrittenem übergehen. Der Zauberstabmacher muss die Kernmaterialien aus einer Liste extrahieren. Jeder Zauberstabkern ist ein zusammengesetztes Wort, das normalerweise mit einem magischen Wesen als Präfix und einem magischen Stoff als Suffix beginnt.

Öffnen Sie eine Datei namens wand_cores.py im Verzeichnis ~/project und schreiben Sie ein reguläres Ausdrucksmuster, um die Zauberstabkerne im bereitgestellten Text zu finden und aufzulisten.

import re

## Text mit gemischten Informationen, einschließlich Zauberstabkernen
text = "dragonheartstring phoenixfeather unicornhair basiliskvenom trollwhisker"

## Regulärer Ausdrucksmuster, um Zauberstabkerne (zusammengesetzte Wörter) zu finden
pattern = r"\b\w+heartstring|\b\w+feather|\b\w+hair|\b\w+venom|\b\w+whisker"

## Finden aller Treffer mit der Methode 'findall'
wand_cores = re.findall(pattern, text)

print("Wand cores extracted:", wand_cores)

Führen Sie den obigen Code aus und überprüfen Sie die Liste der Zauberstabkerne.

python wand_cores.py

Die erwartete Ausgabe sollte die im Text gefundenen Zauberstabkerne anzeigen:

Wand cores extracted: ['dragonheartstring', 'phoenixfeather', 'unicornhair', 'basiliskvenom', 'trollwhisker']

Überprüfen von Beschwörungsphrasen

Als letztes Challenge werden wir die Phrasen überprüfen, die zur Verzauberung der Zauberstäbe verwendet werden. Die Phrasen müssen einem strengen Muster folgen: Sie müssen mit einem magischen Wort beginnen, gefolgt von einem Doppelpunkt und dann einer Reihe von komma-getrennten magischen Parametern oder Beschwörungen. Ein gültiger Beschwörungsphase sieht wie folgt aus: 'Lumos:maxima,solemnly,nova'.

Öffnen Sie enchantment_validator.py im Verzeichnis ~/project und schreiben Sie eine Funktion, die einen regulären Ausdruck verwendet, um eine Liste von Beschwörungsphrasen zu überprüfen.

import re

def validate_enchantment(phrase):
    ## Regulärer Ausdrucksmuster, um gültige Beschwörungsphrasen zu finden
    pattern = r"^[A-Za-z]+:(?:[A-Za-z]+,)*[A-Za-z]+$"
    if re.fullmatch(pattern, phrase):
        return True
    else:
        return False

## Liste von Phrasen, die überprüft werden sollen
phrases = [
    "Lumos:maxima,solemnly,nova",
    "Reducio:shrink,less",
    "Protego:maxima",
    "Alohomora:",
    "Expelliarmus:disarm,fight,duel,"
]

## Überprüfen jeder Phrase
for phrase in phrases:
    result = validate_enchantment(phrase)
    print(f"'{phrase}' ist {'gültig' if result else 'ungültig'}")

Führen Sie den Code aus und überprüfen Sie die Überprüfungsergebnisse.

python enchantment_validator.py

Die erwartete Ausgabe sollte anzeigen, welche Phrasen gültig sind:

'Lumos:maxima,solemnly,nova' ist gültig
'Reducio:shrink,less' ist gültig
'Protego:maxima' ist gültig
'Alohomora:' ist ungültig
'Expelliarmus:disarm,fight,duel,' ist ungültig

Zusammenfassung

In diesem Lab hast du eine magische Reise durch die Hogwarts Schule für Zauberei und Magie unternommen, um die Zauber der Python-Regular Expressions zu meistern. Von der Entzifferung von Grundmustern in Runensequenzen bis zur Extraktion von Zauberstabkernen und der Überprüfung von Beschwörungsphrasen hast du deine Fähigkeiten geschärft, um dem Zauberstabmacher zu helfen.

Es ist die Hoffnung, dass du durch diesen praxisorientierten Ansatz ein tieferes Verständnis und eine größere Wertschätzung für die Macht und Vielseitigkeit von RegEx bei der Textverarbeitung gewonnen hast. Deine Reise hat nicht nur dein Programmierungsspektrum erweitert, sondern auch dich mit der Magie von Python in der Welt der Regular Expressions versehen.