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

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


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