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

ทำไมต้องใช้ Question Mark Literal ใน Python Regular Expression

Question mark literal ใช้หลายแบบใน Python Regular Expressions

Special character '?'

ทำให้ RE จับคู่ 0 หรือ 1 ครั้งของ RE ก่อนหน้า ab? จับคู่ 'a' หรือ 'ab'

Question mark ใช้ในรูปแบบต่อไปนี้ตามเอกสาร Python:

ทำให้ Quantifier เป็น Non-greedy

*?, +?, ??

*, +, ? qualifiers ล้วนเป็น greedy จับคู่มากที่สุดเท่าที่จะเป็นไปได้ บางครั้งไม่ต้องการพฤติกรรมนี้ หาก RE <.*> จับคู่กับ ' b ' จะจับคู่ทั้งสตริง ไม่ใช่แค่ '' ใส่ ? หลัง qualifier ทำให้ match แบบ non-greedy/minimal จับคู่น้อยที่สุดเท่าที่จะเป็นไปได้ ใช้ RE <.*?> จะจับคู่แค่ ''