LoslegenKostenlos starten

Bitte Tag schließen!

In der Zwischenzeit arbeitest du an einem deiner anderen Projekte. Das Unternehmen entwickelt ein neues Produkt, das Entwicklerinnen und Entwicklern hilft, den von ihnen geschriebenen Code automatisch zu prüfen. Du sollst ein kurzes Skript schreiben, das kontrolliert, ob jeder geöffnete HTML-Tag korrekt geschlossen wird.

Hier ist ein Beispielstring mit HTML-Tags:

<title>The Data Science Company</title>

Du weißt: Ein öffnender HTML-Tag steht immer am Anfang des Strings. Er steht innerhalb von <>. Ein schließender Tag steht ebenfalls in <>, wird aber von / eingeleitet.

Außerdem erinnerst du dich, dass auf Capturing Groups mit Zahlen verwiesen werden kann, z. B. mit \4.

Die Liste html_tags mit drei Strings, die HTML-Tags enthalten, sowie das Modul re sind in deiner Session geladen. Du kannst print() verwenden, um dir die Daten in der IPython Shell anzusehen.

Diese Übung ist Teil des Kurses

<Kurs>Reguläre Ausdrücke in Python</Kurs>
Kurs ansehen

Übungsanweisungen

  • Vervollständige die Regex, um geschlossene HTML-Tags zu matchen. Prüfe für jeden String in der Liste html_tags, ob ein Match gefunden wird. Weise das Ergebnis match_tag zu.
  • Wenn ein Match gefunden wird, gib die erste erfasste Gruppe aus, die in match_tag gespeichert ist.
  • Wenn kein Match gefunden wird, vervollständige die Regex so, dass nur der Text innerhalb des HTML-Tags gematcht wird. Weise sie notmatch_tag zu.
  • Gib die erste von der Regex erfasste Gruppe aus, die in notmatch_tag gespeichert ist.

Interaktive praktische Übung

Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.

for string in html_tags:
    # Complete the regex and find if it matches a closed HTML tags
    match_tag =  re.match(____"<____>.*?", ____)
 
    if match_tag:
        # If it matches print the first group capture
        print("Your tag {} is closed".format(match_tag.____(____))) 
    else:
        # If it doesn't match capture only the tag 
        notmatch_tag = re.match(____"<____>", ____)
        # Print the first group capture
        print("Close your {} tag!".format(notmatch_tag.____(____)))
Code bearbeiten und ausführen