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

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

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

ไวยากรณ์ (Syntax)

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

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

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

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

ฟังก์ชัน re.search คืนค่าอ็อบเจ็กต์ 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"
searchObj = re.search(r'(.*) are (.*?) .*', line, re.M|re.I)
if searchObj:
    print "searchObj.group() : ", searchObj.group()
    print "searchObj.group(1) : ", searchObj.group(1)
    print "searchObj.group(2) : ", searchObj.group(2)
else:
    print "Nothing found!!"

ผลลัพธ์ (Output)

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

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