从字符串末尾删除字符集

Removing set of characters from the end of the string

我想从这个字符串中删除@email.com,即使 "myemail" 部分被更改,代码仍然可以工作 我这样做了:

email = "myemail@email.com"
a = a.replace(a[-10:-1],'')
print(a)

输出:

myemailm

我也想删除那个 'm',但我找不到这样做的方法。

提前致谢。

您的切片明确排除了最后一个字符。同时使用 slice 和 replace 也会让事情变得比他们需要的更复杂;这些中的任何一个都可以更简单地完成工作:

>>> "myemail@email.com"[:-10]
'myemail'
>>> "myemail@email.com".replace("@email.com", "")
'myemail'
>>> "myemail@email.com".split("@")[0]
'myemail'

找到@的索引并保留第一部分

email = "myemail@email.com"
email = email[:email.index('@')]
print(email)

输出:

myemail

您可以尝试如下:

email = "myemail@email.com"
a = email.split('@')
a[0]

或者你也可以拆分。

In [1]: "myemail@email.com".split("@")[0]                                                                                                     
Out[1]: 'myemail'
email = "myemail@email.com"
a = email.split("@")[0]
print(a)

给出输出:

myemail

email.split("a") returns 列表 ["myemail", "email.com"] 您可以使用 [0]

从中获取第一个元素

您可以将电子邮件拆分为一个列表,使用 @ 作为分隔符,然后打印列表中的第一项,即 @ 之前的所有内容。这将解释不同长度的域名。例如,@yahoo.com 比@gmail.com 长,您必须考虑各自的长度。

email = "myemail@email.com"
a = email.split("@")[0]
print(a)

或者你也可以直接用replace的方式,具体情况具体分析,但是你的拼接不对。不包括停止值。因此,根据您的说法 a = a.replace(a[-10:-1] , ''),您还没有替换 .com 中的 m。如果您改为说 a = a.replace(a[-10:],''),您将替换从第 -10 个索引到字符串末尾的所有内容。

另一个可能的解决方案是找到@的索引。

a = email[0:email.index('@')]

代码:

电子邮件 = "myemail@email.com"

new_email = email.replace(电子邮件[-10:],'')

打印(new_email)

输出: 我的邮箱