การใช้ Group ในการค้นหาด้วยเมธอด search ใน Python
บ่อยครั้งที่ในการค้นหาความสอดคล้อง มันสะดวกที่จะแยกสตริงย่อยออกเป็นสิ่งที่เรียกว่า กลุ่ม (groups) พวกมันเป็นวิธีในการแบ่งส่วนที่พบออกเป็นส่วนๆ แยกกัน ในการใช้งาน คุณต้องใส่ส่วนหนึ่งของ regular expression ไว้ในวงเล็บ
มาลองทำดูในทางปฏิบัติ สมมติว่าเรามีสตริงต่อไปนี้:
txt = '123 456'
ลองแยกสตริงย่อยที่เป็นตัวเลขออกเป็นกลุ่มกัน สำหรับสิ่งนี้ เรามาเขียน regular expression ต่อไปนี้:
res = re.search('(\d+) (\d+)', txt)
ผลลัพธ์ที่ได้จะเป็น match object ในองค์ประกอบที่มีดัชนี 1 จะเป็นกลุ่มแรก ในองค์ประกอบที่มีดัชนี
2 จะเป็นกลุ่มที่สอง และในองค์ประกอบที่มีดัชนี 0 จะเป็นทุกสิ่งที่พบ (ที่เรียกว่า กลุ่มศูนย์):
print(res[0]) # '123 456' - สิ่งที่พบ
print(res[1]) # '123' - กลุ่มที่ 1
print(res[2]) # '456' - กลุ่มที่ 2
กำหนดสตริงที่มีโดเมน:
txt = 'sss domain.ru zzz'
ค้นหาโดเมนนั้นและใส่ชื่อโดเมนไว้ในกลุ่มแรก และโซนไว้ในกลุ่มที่สอง
กำหนดสตริงที่มีวันที่:
txt = '31.12.2025'
ใส่วันที่ไว้ในกลุ่มแรก เดือนไว้ในกลุ่มที่สอง และปีไว้ในกลุ่มที่สาม