【发布时间】:2013-02-19 01:38:01
【问题描述】:
我对 python 和正则表达式很陌生,我想知道如何将电子邮件地址的第一部分提取到域名。例如,如果:
s='xjhgjg876896@domain.com'
我希望正则表达式的结果是(考虑到电子邮件 ID 的所有“种类”,即包括数字等):
xjhgjg876896
我得到了正则表达式的想法——因为我知道我需要扫描到“@”然后存储结果——但我不确定如何在 python 中实现它。
感谢您的宝贵时间。
【问题讨论】:
-
您是否需要为此使用正则表达式(例如,作为家庭作业或其他内容的一部分)?还是您只是猜测没有其他方法可以做到这一点?
-
如果您确实需要使用正则表达式,则必须阅读有关它们的教程以及 Python
re模块。如果我只是说“使用re.match('^(.*?)@', s)”,你不会知道如何使用返回的东西,如何调试或扩展它等等,那么你的重点是什么? -
您是否也想解析这些有效的电子邮件地址:
Tony Snow <tony@example.com>和(tony snow) tony@example.com?你想从tony%example.com@example.org返回什么?电子邮件地址格式的当前标准在这里:rfc-editor.org/rfc/rfc5322.txt -
如果您需要解析完整的电子邮件地址,而不仅仅是这种简单的形式,您更肯定不想要正则表达式。请参阅 std 库和朋友中的
email.utils.parseaddr,或者如果由于某种原因不合适,请在 PyPI 上搜索第三方库。正确处理所有细节非常困难。这正是 python 附带电池的原因。