如何使用正则表达式匹配所有首字母为小写的电子邮件地址?

时间:2019-03-11 20:00:11

标签: python regex python-2.7

我只想从满足条件的字符串中找到那些电子邮件地址。
条件:电子邮件必须使用小写的第一个字符。另外:
它不能包含子字符串。

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

2 个答案:

答案 0 :(得分:1)

就这么简单(您需要在小写字母之前添加单词边界\b

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

请参见a demo on regex101.com


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

答案 1 :(得分:0)

不仅可以确保首字母为小写字母,还可以验证电子邮件是否符合预期输出:

pattern = r'\b[a-z]\S*@\S+\.\S+' 
  1. \b[a-z]确保首字母小写。

示例:a

  1. \S*@确保字符串的末尾具有 @

示例:a @

  1. \S+\.确保字符串的长度至少应为1,并且末尾必须为

示例a @ gmail。

  1. \S+确保字符串的长度必须至少为1。

示例a@gmail.com