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