如何在Python中删除特定字符后的所有字符?
我有一段文字,我想把某个字符后面的所有内容都去掉。在这个例子中就是 ...
。
因为后面的内容会变化,所以我想把某个字符后面的所有字符都删除。
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的解决方案都会返回整个字符串。