สมมติว่าเรามีที่อยู่อีเมลเป็นสตริง เราต้องตรวจสอบว่าถูกต้องหรือไม่ตามเงื่อนไขต่อไปนี้:
- รูปแบบต้องเป็น username@company.domain
- Username ประกอบด้วยตัวอักษรพิมพ์เล็ก/ใหญ่ ตัวเลข ขีดกลาง (-) และขีดล่าง (_) เท่านั้น
- Company name ประกอบด้วยตัวอักษรพิมพ์เล็ก/ใหญ่และตัวเลขเท่านั้น
- Domain ประกอบด้วยตัวอักษรพิมพ์เล็ก/ใหญ่เท่านั้น
- ความยาวสูงสุดของส่วนขยาย (extension) คือ 3 ตัวอักษร
เราสามารถใช้ Regular Expression (Regex) เพื่อตรวจสอบที่อยู่อีเมล โดยนำเข้าไลบรารี re และใช้ฟังก์ชัน match()
ตัวอย่างเช่น หาก s = "popular_website15@comPany.com" ผลลัพธ์จะเป็น True
ขั้นตอนการแก้ปัญหา
- pat := รูปแบบ regex "^[a-zA-Z0-9-_]+@[a-zA-Z0-9]+\.[a-z]{1,3}$"
- ถ้า pat ตรงกับ s ให้คืนค่า True
- มิฉะนั้นคืนค่า False
ตัวอย่างโค้ด
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 = "popular_website15@comPany.com"
print(solve(s))
อินพุต
"popular_website15@comPany.com"
เอาต์พุต
True