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
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 aanmatch_tag. - Als er een match is gevonden, print dan de eerste groep die is vastgelegd en in
match_tagis 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_tagis 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.____(____)))