从字符串中删除前缀



在python中有什么可爱的方法来做到这一点?

假设我们有一个字符串列表:

clean_be
clean_be_al
clean_fish_po
clean_po

,我们希望输出为:

be
be_al
fish_po
po

另一种适用于所有场景的方法:

import re
data = ['clean_be',
'clean_be_al',
'clean_fish_po',
'clean_po', 'clean_a', 'clean_clean', 'clean_clean_1']
for item in data:
item = re.sub('^clean_', '', item)
print (item)

输出:

be
be_al
fish_po
po
a
clean
clean_1

这是一个可能的解决方案,适用于任何前缀:

prefix = 'clean_'
result = [s[len(prefix):] if s.startswith(prefix) else s for s in lst]

您只提供了关于您试图实现的内容的最少信息,但是可以通过以下函数创建4个给定输入的所需输出:

def func(string): 
return "_".join(string.split("_")[1:])

你可以这样做:

strlist = ['clean_be','clean_be_al','clean_fish_po','clean_po']
def func(myList:list, start:str):
ret = []
for element in myList:
ret.append(element.lstrip(start))
return ret
print(func(strlist, 'clean_'))

我希望,这是有用的,Nohab

根据您提供的内容,有许多方法可以执行此操作。除了上面的答案,你还可以这样做:

string = 'clean_be_al'
string = string.replace('clean_','',1)

这将删除字符串中第一次出现的clean_。另外,如果第一个单词保证是"clean",那么你也可以这样尝试:

string = 'clean_be_al'
print(string[6:])

您可以使用lstrip来删除前缀,rstrip来删除后缀

line = "clean_be"
print(line.lstrip("clean_"))

的缺点:

lstrip([chars])

[chars]参数不是前缀;相反,它的值的所有组合将被剥离。

最新更新