寻找正则表达式匹配的Pythonic方式

时间:2017-01-29 00:18:06

标签: python regex

我想从电子邮件地址中提取名字。电子邮件格式为<first_name>@gmail.com。如果电子邮件不匹配,请返回None。我编写了以下python代码

def getFirstName(email):
    email_re = re.compile(r'(\w+)@gmail.com')
    match = email_re.search(email)
    if match == None:
        return None
    return match.group(1)

None检查部分看起来很难看。有人可以建议更好的pythonic方式吗?

2 个答案:

答案 0 :(得分:1)

这个处理此问题的Pythonic方法。好吧差不多。

if match is None

答案 1 :(得分:0)

def get_first_name(email):
    match = re.search(r'(\w+)@gmail\.com', email)
    return match.group(1) if match else None
  • 您需要在模式中转义.,否则它将匹配任何内容。
  • with声明与此无关。