समस्या विवरण
ईमेल पते काफी जटिल होते हैं और पूरी दुनिया में एक मानक का पालन नहीं किया जाता है जो रेगेक्स में ईमेल की पहचान करना मुश्किल बनाता है। RFC 5322 ईमेल पते का प्रारूप निर्दिष्ट करता है। हम टेक्स्ट से ईमेल पते निकालने के लिए इस प्रारूप का उपयोग करेंगे।
उदाहरण के लिए, दिए गए इनपुट स्ट्रिंग के लिए:
Hi my name is John and email address is john.doe@somecompany.co.uk and my friend's email is jane_doe124@gmail.com
हमें आउटपुट मिलना चाहिए:
john.doe@somecompany.co.uk jane_doe124@gmail.com
हम निम्नलिखित रेगेक्स का उपयोग निष्कर्षण के लिए कर सकते हैं:
[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+
हम re मॉड्यूल से findall मेथड का उपयोग करके ईमेल पते निकाल सकते हैं।
उदाहरण
import re
my_str = "Hi my name is John and email address is john.doe@somecompany.co.uk and my friend's email is jane_doe124@gmail.com"
emails = re.findall("([a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+)", my_str)
for mail in emails:
print(mail)
आउटपुट
john.doe@somecompany.co.uk
jane_doe124@gmail.com