我是python和regex的新手,我想知道如何提取电子邮件地址的第一部分到域名.例如,如果:
s='xjhgjg876896@domain.com'
Run Code Online (Sandbox Code Playgroud)
我希望正则表达式的结果是(考虑到所有"类型"的电子邮件ID,包括数字等..):
xjhgjg876896
Run Code Online (Sandbox Code Playgroud)
我理解正则表达式 - 就像我知道我需要扫描到"@"然后存储结果 - 但我不确定如何在python中实现它.
谢谢你的时间.
Dav*_*son 42
你应该只使用split字符串的方法:
s.split("@")[0]
Run Code Online (Sandbox Code Playgroud)
正如其他人指出的那样,更好的解决方案是使用split.
如果你真的热衷于使用regex那么这应该有效:
import re
regexStr = r'^([^@]+)@[^@]+$'
emailStr = 'foo@bar.baz'
matchobj = re.search(regexStr, emailStr)
if not matchobj is None:
print matchobj.group(1)
else:
print "Did not match"
Run Code Online (Sandbox Code Playgroud)
它打印出来
foo
Run Code Online (Sandbox Code Playgroud)
注意:这仅适用于SOMEONE@SOMETHING.TLD. 如果您想匹配类型为 的电子邮件NAME<SOMEONE@SOMETHING.TLD>,则需要调整正则表达式。