วงเล็บกลุ่มใน Regular Expression ของ Python
ในตัวอย่างก่อนหน้านี้ ตัวดำเนินการทำซ้ำ จะทำงานกับตัวอักษรเพียงตัวเดียวที่อยู่ ข้างหน้าพวกมันเท่านั้น จะทำอย่างไรหากต้องการ ให้พวกมันทำงานกับตัวอักษรหลายตัว?
สำหรับสิ่งนี้ มีวงเล็บกลุ่ม
'(' และ พวกมันทำงานดังนี้:
หากมีบางสิ่งอยู่ในวงเล็บกลุ่ม
และมีตัวดำเนินการทำซ้ำอยู่หลัง
')'')' ทันที - มันจะส่งผลกับทุกสิ่ง
ที่อยู่ภายในวงเล็บ
ในตัวอย่างถัดไป แพทเทิร์นการค้นหาดูเหมือน
ดังนี้: ตัวอักษร 'x' ตามด้วยสตริง
'ab' หนึ่งครั้งหรือมากกว่า จากนั้นตัวอักษร
'x':
txt = 'xabx xababx xaabbx'
res = re.sub('x(ab)+x', '!', txt)
print(res)
ผลลัพธ์การทำงานของโค้ด:
'! ! xaabbx'
กำหนดสตริง:
txt = 'ab abab abab abababab abea'
เขียน regular expression ที่จะค้นหาสตริง
ตามแพทเทิร์น: สตริง 'ab' ทำซ้ำ
1 ครั้งหรือมากกว่า