เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

ปิดแท็กด้วย!

ระหว่างนี้ คุณกำลังทำงานในอีกโปรเจกต์หนึ่ง บริษัทกำลังจะพัฒนาผลิตภัณฑ์ใหม่ที่ช่วยให้นักพัฒนาตรวจสอบโค้ดที่กำลังเขียนได้โดยอัตโนมัติ คุณต้องเขียนสคริปต์สั้น ๆ เพื่อตรวจสอบว่าแท็ก HTML ทุกแท็กที่เปิดไว้มีแท็กปิดที่ถูกต้องด้วย

ตัวอย่างสตริงที่มีแท็ก HTML มีดังนี้:

<title>The Data Science Company</title>

แท็กเปิดของ HTML จะอยู่ที่ต้นสตริงเสมอ โดยอยู่ภายใน <> ส่วนแท็กปิดก็อยู่ภายใน <> เช่นกัน แต่จะมี / นำหน้า

อย่าลืมว่า capturing groups สามารถอ้างอิงได้ด้วยตัวเลข เช่น \4

ลิสต์ html_tags ที่มีสตริงสามรายการพร้อมแท็ก HTML และโมดูล re ได้ถูกโหลดไว้ในเซสชันแล้ว สามารถใช้ print() เพื่อดูข้อมูลใน IPython Shell ได้

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร

Regular Expressions ใน Python

ดูคอร์ส

คำแนะนำการฝึกหัด

  • เติม regex ให้สมบูรณ์เพื่อจับคู่แท็ก HTML ที่มีการปิดครบถ้วน จากนั้นตรวจสอบว่าแต่ละสตริงในลิสต์ html_tags มีส่วนที่ตรงกันหรือไม่ แล้วกำหนดผลลัพธ์ให้กับ match_tag
  • หากพบส่วนที่ตรงกัน ให้พิมพ์กลุ่มแรกที่ดักจับและบันทึกไว้ใน match_tag
  • หากไม่พบส่วนที่ตรงกัน ให้เติม regex เพื่อจับคู่เฉพาะข้อความภายในแท็ก HTML แล้วกำหนดให้กับ notmatch_tag
  • พิมพ์กลุ่มแรกที่ regex ดักจับและบันทึกไว้ใน notmatch_tag

แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ

ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์

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.____(____)))
แก้ไขและรันโค้ด