ฟังก์ชันนี้ค้นหาครั้งแรกที่พบของนิพจน์ปกติ 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