如何在Python中删除特定字符后的所有字符?

241 投票
11 回答
521447 浏览
提问于 2025-04-15 11:48

我有一段文字,我想把某个字符后面的所有内容都去掉。在这个例子中就是 ...
因为后面的内容会变化,所以我想把某个字符后面的所有字符都删除。

11 个回答

33

如果你想要删除字符串中最后一个分隔符后面的所有内容,我发现下面这个方法效果不错:

<separator>.join(string_to_split.split(<separator>)[:-1])

举个例子,如果 string_to_split 是一个路径,比如 root/location/child/too_far.exe,而你只想要文件夹的路径,你可以用 "/".join(string_to_split.split("/")[:-1]) 来分割,这样你就能得到 root/location/child

138

假设你的分隔符是 '...',但它可以是任何字符串。

text = 'some string... this part will be removed.'
head, sep, tail = text.partition('...')

>>> print head
some string

如果没有找到分隔符,head 将包含原始字符串的全部内容。

partition 函数是在 Python 2.5 中添加的。

S.partition(sep) -> (head, sep, tail)

这个函数会在 S 中搜索分隔符 sep,并返回分隔符前的部分、分隔符本身以及分隔符后的部分。如果没有找到分隔符,就会返回 S 和两个空字符串。

401

在你的分隔符上最多分割一次,然后取第一部分:

sep = '...'
stripped = text.split(sep, 1)[0]

你没有说明如果没有分隔符应该怎么处理。在这种情况下,这个方法和Alex的解决方案都会返回整个字符串。

撰写回答