Zamknij tag, proszę!
Pracujesz właśnie nad jednym ze swoich projektów. Firma planuje stworzyć nowy produkt, który pomoże programistom automatycznie sprawdzać pisany przez nich kod. Twoim zadaniem jest napisanie krótkiego skryptu, który weryfikuje, czy każdy otwarty tag HTML ma odpowiedni tag zamykający.
Masz do dyspozycji przykładowy ciąg znaków zawierający tagi HTML:
<title>The Data Science Company</title>
Otwierający tag HTML zawsze pojawia się na początku ciągu znaków i jest otoczony znakami <>. Tag zamykający również pojawia się wewnątrz <>, ale poprzedza go /.
Pamiętaj też, że do grup przechwytujących można odwoływać się za pomocą numerów, np. \4.
Lista html_tags zawierająca trzy ciągi znaków z tagami HTML oraz moduł re są już załadowane w twoim środowisku. Możesz użyć print(), aby wyświetlić dane w powłoce IPython.
To ćwiczenie jest częścią kursu
Wyrażenia regularne w Pythonie
Instrukcje do ćwiczenia
- Uzupełnij wyrażenie regularne tak, aby dopasowywało zamknięte tagi HTML. Sprawdź, czy dopasowanie istnieje dla każdego ciągu znaków z listy
html_tags. Wynik przypisz do zmiennejmatch_tag. - Jeśli dopasowanie zostanie znalezione, wyświetl pierwszą przechwyconą grupę zapisaną w
match_tag. - Jeśli dopasowanie nie zostanie znalezione, uzupełnij wyrażenie regularne tak, aby dopasowywało wyłącznie tekst wewnątrz tagu HTML. Wynik przypisz do zmiennej
notmatch_tag. - Wyświetl pierwszą grupę przechwyconą przez wyrażenie regularne i zapisaną w
notmatch_tag.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
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.____(____)))