为什么程序没有从字符串中找到任何电子邮件



程序应该从字符串中找到所有电子邮件,但没有返回任何内容。

my_str="""
Practice @Geeksforgeeksexpand_more
Algorithmsexpand_more
Data Structuresexpand_more
Programming Languagesexpand_more
Web Technologiesexpand_more
Tutorial Libraryexpand_more
Computer Science Subjectsexpand_more
GATE 2021expand_more
UGC NET / ISROexpand_more
QUIZ Sectionexpand_more
Puzzles
Geeksforgeeks Initiativesexpand_more
Contact Us
Address:
GeeksforGeeks
5th & 6th Floor, Royal Kapsons, A- 118,
Sector- 136, Noida, Uttar Pradesh (201305)
For feedback and queries: feedback@geeksforgeeks.org
For course related queries: geeks.classes@geeksforgeeks.org
For payment related issues: geeks.classes@geeksforgeeks.org
For any issue in a purchased course : complaints@geeksforgeeks.org
To contribute, please see the contribute 
page"""

这些代码行应该可以找到所有的电子邮件-

pattern=re.compile(r'.*[a-z]@[a-z].[a-z]')
match=pattern.finditer(my_str)
for matches in match:
print(matches)

谢谢。

使用findall():

import re
my_str="""
Practice @Geeksforgeeksexpand_more
Algorithmsexpand_more
Data Structuresexpand_more
Programming Languagesexpand_more
Web Technologiesexpand_more
Tutorial Libraryexpand_more
Computer Science Subjectsexpand_more
GATE 2021expand_more
UGC NET / ISROexpand_more
QUIZ Sectionexpand_more
Puzzles
Geeksforgeeks Initiativesexpand_more
Contact Us
Address:
GeeksforGeeks
5th & 6th Floor, Royal Kapsons, A- 118,
Sector- 136, Noida, Uttar Pradesh (201305)
For feedback and queries: feedback@geeksforgeeks.org
For course related queries: geeks.classes@geeksforgeeks.org
For payment related issues: geeks.classes@geeksforgeeks.org
For any issue in a purchased course : complaints@geeksforgeeks.org
To contribute, please see the contribute 
page"""
matches = re.findall(r'[w.-]+@[w.-]+', my_str)
print(matches)

输出:

['feedback@geeksforgeeks.org', 'geeks.classes@geeksforgeeks.org', 'geeks.classes@geeksforgeeks.org', 'complaints@geeksforgeeks.org']       

您的RegExp完全错误,这就是原因。这是一个几乎没有修正的版本:

b[a-z.]+@[a-z]+.[a-z]+

Fiddle:https://regex101.com/r/kNAbHZ/2

您的代码输出变为:

<re.Match object; span=(471, 497), match='feedback@geeksforgeeks.org'>
<re.Match object; span=(527, 558), match='geeks.classes@geeksforgeeks.org'>
<re.Match object; span=(587, 618), match='geeks.classes@geeksforgeeks.org'>
<re.Match object; span=(657, 685), match='complaints@geeksforgeeks.org'>

请注意,找到一个有效的电子邮件地址要复杂得多。看见https://www.regular-expressions.info/email.html.

最新更新