Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Python中从字符串中提取电子邮件服务提供者_Python_String - Fatal编程技术网

在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
?@jornsharpe
getEmail.index(“.”
在本例中返回4(第一个索引为“.”)。如果您使用您建议的示例,它将起作用,但代码仍不能正确用于所有使用名称部分中带有“.”的电子邮件。@Relandom我知道这一点;这是一个反问句,旨在引导OP自己解决问题。哦。。。对不起,我以为你建议更改代码而不是代码。我的错!电子邮件地址的域部分不一定直接表示提供商。您无法知道
user@x.y.example
位于
y.example
的子域中,或者如果这是
example
TLD的管理域(比较
mail.google.ca
vs
mail.google.co.uk
等,尝试忽略我们人类读入这些标签的任何语义)。
get_email = input("User email: ")
username, hostname = get_email.split('@')
provider = hostname.split('.')[0]