Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

ความหมายของ ?: ใน Python Regular Expression

Non-capturing Groups (กลุ่มที่ไม่จับคู่)

หากไม่ต้องการให้กลุ่มจับคู่ผลลัพธ์ ให้เขียน regex เป็น Set(?:Value) เครื่องหมาย ? และ : หลังวงเล็บเปิด คือ syntax สร้าง non-capturing group

Regex Set(Value)? จับคู่ "Set" หรือ "SetValue" กรณีแรก capturing group แรกว่าง กรณีที่สองจับคู่ "Value" ? ต่อท้ายคือ quantifier ทำให้ token ก่อนหน้า optional

Set(?:Value) จับคู่ "Setxxxxx" คือสตริงขึ้นต้นด้วย Set แต่ไม่ตามด้วย Value เป็น non-capturing group

color=(?:red|green|blue) อีกตัวอย่าง non-capturing group ไม่มี quantifiers

Regex flavors ที่รองรับ named capture มักมีตัวเลือกทำให้ unnamed groups กลายเป็น non-capturing groups ทั้งหมด