Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

ค้นหารูปแบบทั้งหมดของ “1(0+)1” ในสตริงที่กำหนดโดยใช้ Python Regex


ในบทช่วยสอนนี้ เราจะเขียนโปรแกรมที่ค้นหาการเกิดขึ้นทั้งหมดของ 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']

บทสรุป

หากคุณมีข้อสงสัยเกี่ยวกับบทแนะนำ โปรดระบุในส่วนความคิดเห็น