使用Python删除连接字符串的第一部分

时间:2010-07-12 03:38:28

标签: python string

我有一个字符串如下

CompilationStatistics_Compilation_StepList_Map_TimingUsage_ClockList_Clock_MinimumPeriod

删除第一部分(CompilationStatistics_)或最后部分(_MiniumuPeriod)的最简单方法是什么?

我考虑使用正则表达式,但我希望应该有更好的方法。

m = re.search("{.+}_{.+}", string)
m.group(2)

5 个答案:

答案 0 :(得分:3)

请参阅String methods的Python文档,尤其是partitionrpartition

s = "CompilationStatistics_Compilation_StepList_Map_TimingUsage_ClockList_Clock_MinimumPeriod"
print s.partition('_')[2].rpartition('_')[0]

结果

Compilation_StepList_Map_TimingUsage_ClockList_Clock

答案 1 :(得分:3)

'_'.join(s.split("_")[1:-1])

更改拼接数将改变您获得的数量:例如,删除“-1”只会删除第一个项目。

答案 2 :(得分:2)

除了第一个之外的所有人:

s[s.find('_') + 1:]

除了最后一次:

s[0:s.rfind('_')]

没有:

s[s.find('_') + 1:s.rfind('_')]

find返回字符串的第一个索引,rfind返回最后一个索引。然后,我们只使用切片语法。

答案 3 :(得分:1)

如果您知道要剪切的块的大小,可以使用Python的string slicing,如下所示:

s="CompilationStatistics_Compilation_StepList_Map_TimingUsage_ClockList_Clock_MinimumPeriod"
print s[22:-14]

当然,您还可以通过其他方式找到所需的号码,例如使用String.rindex()查找要切断的最终块的位置。例如:

print s[len("CompilationStatistics_"):s.rindex("_MinimumPeriod")]

答案 4 :(得分:0)

使用split():

可以轻松删除第一部分
s.split("_", 1)[1] # Take the second part of the string, split into 2 pieces.