ที่อยู่อีเมลค่อนข้างซับซ้อนและไม่มีมาตรฐานใดที่ผู้คนทั่วโลกปฏิบัติตาม ซึ่งทำให้ระบุอีเมลใน regex ได้ยาก RFC 5322 ระบุรูปแบบของที่อยู่อีเมล เราจะใช้รูปแบบนี้เพื่อดึงที่อยู่อีเมลออกจากข้อความ
ตัวอย่างเช่น สำหรับสตริงอินพุตที่กำหนด −
สวัสดี ฉันชื่อจอห์น และที่อยู่อีเมลคือ john.doe@somecompany.co.uk และอีเมลของเพื่อนฉันคือ jane_doe124@gmail.com
เราควรจะได้ผลลัพธ์ -
john.doe@somecompany.co.ukjane_doe124@gmail.com
เราสามารถใช้ regex ต่อไปนี้เพื่อแยกออก -
[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+
เราสามารถแยกที่อยู่อีเมลโดยใช้วิธี find all จาก re module ตัวอย่างเช่น
ตัวอย่าง
import remy_str ="สวัสดี ฉันชื่อ John และที่อยู่อีเมลคือ john.doe@somecompany.co.uk และอีเมลของเพื่อนฉันคือ jane_doe124@gmail.com"emails =re.findall("([a-zA-Z0 -9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+)", my_str)สำหรับอีเมลในอีเมล:print(mail)ผลลัพธ์
สิ่งนี้จะให้ผลลัพธ์ -
john.doe@somecompany.co.ukjane_doe124@gmail.com