【发布时间】:2021-08-11 02:58:30
【问题描述】:
我正在尝试从用户电子邮件地址中检索用户名和域。
例如:john.smith@apple.com
username = john.smith
domain = apple
我正在尝试将“.com”从打印到控制台中删除。请注意,其他电子邮件地址可能会使用不同的结尾,例如“.ca”、“.org”等。
我也知道我可以使用 .partition() 方法,但是,我正在尝试通过切片和索引来完成此操作。
这是我目前写的一些代码:
mail = input("Enter email address: ")
username = email.find("@")
domain = email.find("@")
print("Username: " + email[:username])
print("Domain: " + email[domain+1:])
输出:
Enter email address: john.smith@apple.com
Username: john.smith
Domain: apple.com
目标:
Enter email address: john.smith@apple.com
Username: john.smith
Domain: apple
有没有一种方法(仅通过索引和切片)可以解释用户输入到控制台的任意数量的字符,并删除“.com”或“.ca”,因此,只显示域中的主要名称?我是否在正确的轨道上找到“@”然后从那里切片?
【问题讨论】:
-
final = email.rfind("."),然后是print("Domain: " + email[domain+1:final])。但是,这通常是 regular expressions 的工作。 -
你可以使用 .split("@") 然后 split('.') 吗?
-
@Malo 这个问题只能通过切片和使用 .find() 来解决。
标签: python python-3.x string indexing slice