ข้อยกเว้นภายในเซ็ตใน Regular Expressions ของ Python
คุณรู้แล้วว่าอักขระพิเศษภายใน []
จะกลายเป็นอักขระธรรมดา อย่างไรก็ตาม มีข้อยกเว้น:
หากคุณต้องการเครื่องหมายวงเล็บเหลี่ยม
เป็นอักขระภายใน [ ] - คุณ
ต้องเอสเคปมันด้วยแบ็กสแลช สำหรับ
ตัวอย่างในโค้ดถัดไปรูปแบบการค้นหา
มีลักษณะดังนี้: ระหว่าง x มี
เครื่องหมายวงเล็บเหลี่ยม:
txt = 'x]x xax x[x x1x'
res = re.sub('x[\[\]]x', '!', txt)
print(res)
ผลลัพธ์ที่ได้ในตัวแปรจะเป็น ดังต่อไปนี้:
'! xax ! x1x'
กำหนดสตริง:
txt = 'x[]z x[[]]z x()z'
เขียน Regular Expression ที่จะพบคำทั้งหมด
ตามรูปแบบ: ตัวอักษร 'x',
ตามด้วยเครื่องหมายวงเล็บเหลี่ยมจำนวนกี่ครั้งก็ได้,
จากนั้นตัวอักษร 'z'
กำหนดสตริง:
txt = 'x[]z x{}z x.z x()z x([])z'
เขียน Regular Expression ที่จะพบคำทั้งหมด
ตามรูปแบบ: ตัวอักษร 'x',
ตามด้วยเครื่องหมายวงเล็บชนิดใดก็ได้จำนวนกี่ครั้งก็ได้, จากนั้น
ตัวอักษร 'z'