Aan de slagBegin gratis

Sluit de tag, alsjeblieft!

Ondertussen werk je aan een van je andere projecten. Het bedrijf gaat een nieuw product ontwikkelen. Het zal ontwikkelaars helpen automatisch de code te controleren die ze schrijven. Jij moet een kort script schrijven om te checken dat elke geopende HTML-tag ook netjes wordt gesloten.

Je hebt een voorbeeld van een string met HTML-tags:

<title>The Data Science Company</title>

Je weet dat een openingstag van HTML altijd aan het begin van de string staat. Die staat tussen <>. Een sluittag staat ook tussen <>, maar wordt voorafgegaan door /.

Je herinnert je ook dat capturing groups kunnen worden verwezen met nummers, bijv. \4.

De lijst html_tags, met drie strings met HTML-tags, en de module re zijn al in je sessie geladen. Je kunt print() gebruiken om de gegevens in de IPython Shell te bekijken.

Deze oefening maakt deel uit van de cursus

Regular expressions in Python

Bekijk cursus

Oefeninstructies

  • Maak de regex af zodat deze gesloten HTML-tags matcht. Kijk of er een match is in elke string van de lijst html_tags. Ken het resultaat toe aan match_tag.
  • Als er een match is gevonden, print dan de eerste groep die is vastgelegd en in match_tag is opgeslagen.
  • Als er geen match is gevonden, maak dan de regex af om alleen de tekst binnen de HTML-tag te matchen. Ken deze toe aan notmatch_tag.
  • Print de eerste groep die door de regex is vastgelegd en in notmatch_tag is opgeslagen.

Interactieve oefening met praktijkervaring

Probeer deze oefening door deze voorbeeldcode aan te vullen.

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 bewerken en uitvoeren