在Python中从字符串中提取电子邮件服务提供者
我想从用户输入中提取电子邮件服务提供商,下面的代码没有给我任何错误,但也没有结果 如果有人能回顾并让我知道我做错了什么,我会很感激吗 代码:在Python中从字符串中提取电子邮件服务提供者,python,string,Python,String,我想从用户输入中提取电子邮件服务提供商,下面的代码没有给我任何错误,但也没有结果 如果有人能回顾并让我知道我做错了什么,我会很感激吗 代码: getEmail = input("Write your email: ") email = getEmail.index('@') print(getEmail[:email]) print("Your user name is : " + getEmail[:email]) print("Your Email service provider is
getEmail = input("Write your email: ")
email = getEmail.index('@')
print(getEmail[:email])
print("Your user name is : " + getEmail[:email])
print("Your Email service provider is : " + getEmail[getEmail.index('@'):getEmail.index('.')])
输出
Write your email: nick.fury@gmail.com
nick.fury
Your user name is : nick.fury
Your Email service provider is :
预期结果
你的用户名是:nick.fury
您的电子邮件服务提供商是:gmail此部分:
getEmail[getEmail.index('@'):getEmail.index('.')])
无法工作,因为getEmail.index('@')
大于getEmail.index('.')]
。
getEmail.index('.')]
返回'.'的第一个索引
您可以尝试以下方法:
getEmail = input("Write your email: ")
email, domain = getEmail.split('@')
print(email)
print("Your user name is: " + email)
print("Your Email service provider is: " + domain.split('.')[0])
另外,在使用print
方法时,您不必使用+
。您可以使用,
:
打印(“您的用户名是:”,电子邮件)
代码:
getEmail = input("Write your email: ")
email = getEmail.index('@')
provider = getEmail[email+1:]
print(getEmail[:email])
print("Your user name is : " + getEmail[:email])
print("Your Email service provider is : " + provider[:provider.index('.')])
输出:
Write your email: nick.fury@gmail.com
nick.fury
Your user name is : nick.fury
Your Email service provider is : gmail
输出:
写你的电子邮件:asfdsf。asd@gmail.com
您的用户名是:asfdsf.asd
您的电子邮件服务提供商是:gmail假设输入格式正确,则更简单的方法是
get_email = input("User email: ")
username, hostname = get_email.split('@')
provider = hostname.split('.')[0]
getEmail.index(“.”)输出什么?如果您尝试nfury@gmail.com
?@jornsharpegetEmail.index(“.”
在本例中返回4(第一个索引为“.”)。如果您使用您建议的示例,它将起作用,但代码仍不能正确用于所有使用名称部分中带有“.”的电子邮件。@Relandom我知道这一点;这是一个反问句,旨在引导OP自己解决问题。哦。。。对不起,我以为你建议更改代码而不是代码。我的错!电子邮件地址的域部分不一定直接表示提供商。您无法知道user@x.y.example
位于y.example
的子域中,或者如果这是example
TLD的管理域(比较mail.google.ca
vsmail.google.co.uk
等,尝试忽略我们人类读入这些标签的任何语义)。
get_email = input("User email: ")
username, hostname = get_email.split('@')
provider = hostname.split('.')[0]