Etiketi kapatalım, lütfen!
Bu arada, başka bir projen üzerinde çalışıyorsun. Şirket yeni bir ürün geliştirecek. Bu ürün, geliştiricilerin yazdıkları kodu otomatik olarak kontrol etmelerine yardımcı olacak. Açık olan her HTML etiketinin doğru şekilde kapatıldığını kontrol eden kısa bir betik yazman gerekiyor.
HTML etiketleri içeren bir dize örneğin var:
<title>The Data Science Company</title>
Açılış HTML etiketinin her zaman dizenin başında olduğunu öğreniyorsun. <> içinde görünür. Kapanış etiketi de <> içinde görünür ancak başında / bulunur.
Ayrıca, yakalama gruplarına sayılarla başvurulabileceğini hatırlıyorsun; örneğin \4.
html_tags listesi (HTML etiketleri içeren üç dize) ve re modülü oturumuna yüklendi. Veriyi IPython Shell'de görmek için print() kullanabilirsin.
Bu egzersiz, kursun bir parçasıdır
Python'da Regular Expressions
Egzersiz talimatları
- Kapanmış HTML etiketlerini eşleştirmek için regex'i tamamla.
html_tagslistesindeki her dizede eşleşme olup olmadığını bul. Sonucumatch_tagdeğişkenine ata. - Eğer bir eşleşme bulunursa,
match_tagiçinde kaydedilen ilk yakalama grubunu yazdır. - Eğer eşleşme bulunmazsa, yalnızca HTML etiketi içindeki metni eşleştirmek için regex'i tamamla. Bunu
notmatch_tagdeğişkenine ata. - Regex'in yakaladığı ilk grubu yazdır ve
notmatch_tagiçine kaydet.
Uygulamalı etkileşimli egzersiz
Bu egzersizi bu örnek kodu tamamlayarak deneyin.
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.____(____)))