【发布时间】:2015-05-29 14:49:51
【问题描述】:
我从没想过我会需要正则表达式方面的帮助,但它是这样的:
我正在寻找用于解析电子邮件地址的单个正则表达式:
-
someone@example.com→{"name": "", "email": "someone@example.com"} -
Some One <someone@example.com>→{"name": "Some One", "email": "someone@example.com"}
正则表达式必须产生两个组:姓名和电子邮件。
这是我目前的状态:
regex = r"^((?P<name>[^(\s+\<)]*)\s+\<)?(?P<email>[^@]+?@[^>]+)>?$"
我绝对确定我需要在第一个嵌套块中转义某些内容,因为这是实际结果:
{'email': 'Some One <someone@example.com', 'name': None}
编辑:忘记在正则表达式中输入*(不回答问题)
EDIT2:solved。感谢大家的帮助。
EDIT3:重命名为:引用→转义
【问题讨论】:
-
@ConspicuousCompiler 这不是骗子;我很好
[^@]+@.+ -
恐怕以我的看法,无论是哪种方式,这个问题都不太可能对未来的 SO 用户有所帮助。这个问题是在寻求正则表达式中的拼写错误的帮助,这不太可能帮助未来的搜索者,或者这个问题正在寻找权威的“如何正则表达式匹配电子邮件地址”,这在欺骗链接中得到了回答。跨度>
-
我认为这对未来的读者很有帮助,因为它真的是关于嵌套括号和括号内的引用; see my answer
-
几乎不可能将电子邮件地址与正则表达式匹配。见stackoverflow.com/q/201323/372239