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

อะไรคือความแตกต่างระหว่าง '.' , '?' และ '*' ในนิพจน์ปกติของ Python?


อักขระพิเศษจุด '.'

(จุด) ในโหมดเริ่มต้น จะจับคู่อักขระใดๆ ยกเว้นขึ้นบรรทัดใหม่ หากมีการระบุแฟล็ก DOTALL จะตรงกับอักขระใดๆ รวมทั้งขึ้นบรรทัดใหม่

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

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

เครื่องหมายดอกจันอักขระพิเศษ'*"

ทำให้ RE ที่เป็นผลลัพธ์ตรงกับ 0 หรือมากกว่าการทำซ้ำของ RE ก่อนหน้า ให้มากที่สุดเท่าที่เป็นไปได้ ab* จะจับคู่กับ 'a', 'ab' หรือ 'a' ตามด้วย 'b' จำนวนเท่าใดก็ได้