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

เหตุใดเราจึงใช้เครื่องหมายคำถามตามตัวอักษรในนิพจน์ทั่วไปของ Python


เครื่องหมายคำถามมีการใช้งานในรูปแบบต่างๆ ใน ​​Python Regular Expressions

อักขระพิเศษ '?'

เป็นอักขระพิเศษ '?' ทำให้ RE ที่เป็นผลลัพธ์ตรงกับ 0 หรือ 1 การซ้ำซ้อนของ RE ก่อนหน้า เอบีเอส? จะจับคู่กับ 'a' หรือ 'ab'

เครื่องหมายคำถามตามตัวอักษร '?' ใช้วิธีการดังต่อไปนี้ตามเอกสาร Python

ทำให้ปริมาณไม่โลภ

*?, +?, ??

ตัว '*', '+' และ '?' รอบคัดเลือกล้วนโลภมาก พวกเขาจับคู่ข้อความให้มากที่สุด บางครั้งพฤติกรรมนี้ไม่ต้องการ หาก RE <.*> จับคู่กับ ' b ' ก็จะจับคู่กับสตริงทั้งหมด ไม่ใช่แค่ '' เพิ่ม ? หลังจากรอบคัดเลือกทำให้ทำการแข่งขันในแบบที่ไม่โลภหรือน้อยที่สุด จับคู่อักขระให้น้อยที่สุด การใช้ RE <.*?> จะจับคู่เฉพาะ ''.