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

ฟังก์ชัน match ใน Python

ฟังก์ชันนี้พยายามจับคู่นิพจน์ปกติ pattern กับ string พร้อม flags ทางเลือก

ไวยากรณ์ (Syntax)

นี่คือไวยากรณ์ของฟังก์ชันนี้:

re.match(pattern, string, flags=0)

คำอธิบายพารามิเตอร์:

ลำดับ พารามิเตอร์และคำอธิบาย
1 pattern
นิพจน์ปกติที่จะจับคู่
2 string
สตริงที่จะค้นหาเพื่อจับคู่กับ pattern ที่ต้นทางของสตริง
3 flags
คุณสามารถระบุแฟล็กต่างๆ โดยใช้ OR แบบบิต (|) นี่คือตัวปรับแต่งซึ่งแสดงในตารางด้านล่าง

ฟังก์ชัน re.match คืนค่าอ็อบเจ็กต์ match เมื่อสำเร็จ None เมื่อล้มเหลว เราใช้ group(num) หรือ groups() ของอ็อบเจ็กต์ match เพื่อรับนิพจน์ที่จับคู่ได้

ลำดับ เมธอดอ็อบเจ็กต์ Match และคำอธิบาย
1 group(num=0)
เมธอดนี้คืนค่าการจับคู่ทั้งหมด (หรือ subgroup เฉพาะ num)
2 groups()
เมธอดนี้คืนค่ากลุ่มย่อยที่จับคู่ทั้งหมดในรูปทูเพิล (ว่างถ้าไม่มี)

ตัวอย่าง

#!/usr/bin/python
import re
line = "Cats are smarter than dogs"
matchObj = re.match(r'(.*) are (.*?) .*', line, re.M|re.I)
if matchObj:
    print "matchObj.group() : ", matchObj.group()
    print "matchObj.group(1) : ", matchObj.group(1)
    print "matchObj.group(2) : ", matchObj.group(2)
else:
    print "No match!!"

ผลลัพธ์ (Output)

เมื่อรันโค้ดข้างต้น จะได้ผลลัพธ์ดังนี้:

matchObj.group() : Cats are smarter than dogs
matchObj.group(1) : Cats
matchObj.group(2) : smarter