ในบทช่วยสอนนี้ เราจะเขียนโปรแกรมที่ค้นหาการเกิดขึ้นทั้งหมดของ 1(0+1) ในสตริงโดยใช้ regexes . เรามี re module ใน Python ซึ่งช่วยให้เราทำงานกับนิพจน์ทั่วไปได้
มาดูตัวอย่างกรณีกัน
Input:string ="ตัวอย่าง 1(0+)1 สตริงที่มี 1(0+)1 รูปแบบที่ไม่จำเป็น 1(0+)1" เอาต์พุต:จำนวนทั้งหมดของแมชรูปแบบคือ 3 ['1(0+)1' , '1(0+)1', '1(0+)1']
ทำตามขั้นตอนด้านล่างเพื่อเขียนโค้ดสำหรับโปรแกรม
อัลกอริทึม
<ก่อน>1. นำเข้า re module.2. เริ่มต้น string.3 สร้างวัตถุ regex โดยใช้นิพจน์ทั่วไปที่ตรงกับรูปแบบโดยใช้ re.compile() อย่าลืมส่งสตริงดิบไปยังฟังก์ชันแทนสตริงปกติ4 ตอนนี้ จับคู่รูปแบบที่เกิดขึ้นทั้งหมดโดยใช้วัตถุ regex จากขั้นตอนด้านบนและ regex_object.findall() method.5 ขั้นตอนข้างต้นจะคืนค่าวัตถุที่ตรงกันและพิมพ์รูปแบบที่ตรงกันโดยใช้เมธอด match_object.group()มาดูโค้ดกันเลย
ตัวอย่าง
# การนำเข้า re moduleimport re# การเริ่มต้น stringstring ="ตัวอย่าง 1(0+)1 สตริงที่มี 1(0+)1 รูปแบบที่ไม่จำเป็น 1(0+)1"# การสร้างวัตถุ regex สำหรับ patterregex ของเรา =re compile(r"\d\(\d\+\)\d") # วัตถุ regex นี้จะค้นหา patter ns ทั้งหมดซึ่งก็คือ 1(0+)1# ที่เก็บรูปแบบที่ตรงกันทั้งหมดในตัวแปรโดยใช้ regex.findall( ) methodresult =regex.findall(string) # result เป็นวัตถุที่ตรงกัน # การพิมพ์ความถี่ของรูปแบบการพิมพ์ (f"จำนวนทั้งหมดของรูปแบบเครื่องจักรคือ {len(result)}")print()# การพิมพ์การจับคู่จากสตริงโดยใช้ผลลัพธ์ .group() methodprint(ผลลัพธ์)
ผลลัพธ์
หากคุณเรียกใช้โค้ดด้านบน คุณจะได้ผลลัพธ์ดังต่อไปนี้
จำนวนรูปแบบทั้งหมดคือ 3['1(0+)1', '1(0+)1', '1(0+)1']
บทสรุป
หากคุณมีข้อสงสัยเกี่ยวกับบทแนะนำ โปรดระบุในส่วนความคิดเห็น