首页 > 解决方案 > 使用正则表达式匹配所有首字母小写的电子邮件?

问题描述

我只想从电子邮件满足条件的字符串中找到那些电子邮件地址。

条件:电子邮件的第一个字符必须小写。

Example : abc123@xyz.com #Satisfies
Example : Abc123@xyz.com #Not Satisfies

代码:

import re
str = ''' 
FIRSTEMAIL@gmail.com    
secondemail@gmail.com
Thirdemail@gmail.com
fourthEmail@gmail.com
'''

pattern = r'[a-z]+[A-Za-z0-9]+[@]+[a-z]+\.+[a-z]+'

output = re.findall(pattern,str)
print output

预期输出:

secondemail@gmail.com
fourthEmail@gmail.com

实际输出:

secondemail@gmail.com
hirdemail@gmail.com   #Problem
fourthEmail@gmail.com

标签: pythonregex

解决方案


就这么简单(你需要\b在小写字母之前添加一个单词边界):

\b[a-z]\S*@\S+

在 regex101.com 上查看演示


\b确保单词和非单词字符之间的边界并且是零宽度断言(意味着它自己不消耗任何字符)。


推荐阅读