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

ฟังก์ชั่นการจับคู่ใน Python


ฟังก์ชันนี้พยายามจับคู่รูปแบบ RE กับสตริงด้วยแฟล็กทางเลือก

ไวยากรณ์

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

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

นี่คือคำอธิบายของพารามิเตอร์ -

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

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

ซีเนียร์ Match Object Method &Description
1 กลุ่ม(num=0)
เมธอดนี้ส่งคืนการจับคู่ทั้งหมด (หรือ 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!!"

ผลลัพธ์

เมื่อโค้ดด้านบนถูกรัน มันจะให้ผลลัพธ์ดังต่อไปนี้ −

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