สมมติว่าเรามีที่อยู่อีเมลเป็นสตริง เราต้องตรวจสอบว่าสิ่งนี้ถูกต้องหรือไม่ตามเงื่อนไขต่อไปนี้ -
-
รูปแบบต้องเป็น [email protected] รูปแบบ
-
ชื่อผู้ใช้มีได้เฉพาะอักษรตัวพิมพ์ใหญ่และตัวพิมพ์เล็ก ตัวเลข ขีดกลาง และขีดล่างเท่านั้น
-
ชื่อบริษัทมีได้เฉพาะตัวอักษรพิมพ์เล็กและตัวเลขเท่านั้น
-
โดเมนมีได้เฉพาะตัวพิมพ์ใหญ่และตัวพิมพ์เล็กเท่านั้น
-
ความยาวสูงสุดของส่วนขยายคือ 3
เราสามารถใช้นิพจน์ทั่วไปเพื่อตรวจสอบที่อยู่อีเมลได้ สามารถใช้นิพจน์ทั่วไปได้โดยการนำเข้าไลบรารีใหม่ เพื่อให้ตรงกับรูปแบบ เราจะใช้ฟังก์ชัน match() ภายใต้ไลบรารี่ใหม่
ดังนั้น หากอินพุตเป็น s ="[email protected]" ผลลัพธ์จะเป็น True
เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -
- pat :="เริ่มต้นด้วย [a-zA-Z0-9-_] ตามด้วย @ แล้วตามด้วยชื่อบริษัทด้วย [a-zA-Z0-9] จากนั้นคั่นด้วยจุดและโดเมนด้วย [a-z] ที่มีความยาว 1 ถึง 3 และสิ่งนี้มีอยู่ในตอนท้าย"
- ถ้า pat ตรงกับ s แล้ว
- คืนค่า True
- มิฉะนั้นจะคืนค่าเป็นเท็จ
ตัวอย่าง
ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น
import re def solve(s): pat = "^[a-zA-Z0-9-_]+@[a-zA-Z0-9]+\.[a-z]{1,3}$" if re.match(pat,s): return True return False s = "[email protected]" print(solve(s))
อินพุต
"[email protected]"
ผลลัพธ์
True