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

การแยกที่อยู่อีเมลโดยใช้นิพจน์ทั่วไปใน Python


ที่อยู่อีเมลค่อนข้างซับซ้อนและไม่มีมาตรฐานใดที่ผู้คนทั่วโลกปฏิบัติตาม ซึ่งทำให้ระบุอีเมลใน 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]