เมธอด re.groups() (บน Match object)
คืนค่า tuple ที่มี subgroup ทั้งหมดของการจับคู่ จากกลุ่มที่ 1 ถึงจำนวนกลุ่มใน pattern อาร์กิวเมนต์ default ใช้สำหรับกลุ่มที่ไม่ได้เข้าร่วมการจับคู่ (ค่าเริ่มต้นคือ None) ตั้งแต่เวอร์ชัน 1.5.1 ขึ้นไป คืนค่า singleton tuple ในกรณีดังกล่าว
ตัวอย่างพื้นฐาน
>> import re
>>> m = re.match(r"(\d+)\.(\d+)", "27.1835")
>>> m.groups()
('27', '1835')
กรณีกลุ่มที่ไม่เข้าร่วมการจับคู่ (Optional Groups)
>> m = re.match(r"(\d+)\.?(\d+)?", "27")
>>> m.groups() # กลุ่มที่ 2 ไม่เข้าร่วม → None
('27', None)
>>> m.groups('0') # ระบุ default = '0'
('27', '0')
คำอธิบาย
- Pattern
(\d+)\.?(\d+)?: กลุ่ม1 = ตัวเลข 1+ ตัว, จุดทศนิยม 0-1 ตัว, กลุ่ม2 = ตัวเลข 1+ ตัว (optional) - สตริง "27" ไม่มีจุดทศนิยม → กลุ่ม2 ไม่เข้าร่วม match → ค่า default คือ None
- ใช้
groups('0')เพื่อกำหนดค่า default เอง