有人知道如何删除特定字符后面的所有字符吗?
像这样:http://google.com/translate_t
进入
http://google.com
答案 0 :(得分:6)
如果你问的是一个抽象的字符串,而不是你可以使用的网址:
>>> astring ="http://google.com/translate_t"
>>> astring.rpartition('/')[0]
http://google.com
答案 1 :(得分:5)
对于网址,使用urlparse:
>>> import urlparse
>>> parts = urlparse.urlsplit('http://google.com/path/to/resource?query=spam#anchor')
>>> parts
('http', 'google.com', '/path/to/resource', 'query=spam', 'anchor')
>>> urlparse.urlunsplit((parts[0], parts[1], '', '', ''))
'http://google.com'
对于任意字符串,使用re:
>>> import re
>>> re.split(r'\b/\b', 'http://google.com/path/to/resource', 1)
['http://google.com', 'path/to/resource']
答案 2 :(得分:2)
str="http://google.com/translate_t"
shortened=str[0:str.rfind("/")]
应该这样做。 str [a:b]返回python中的子字符串。 rfind用于查找字符序列的索引,从字符串的末尾开始。
答案 3 :(得分:2)
如果你知道角色的位置,那么你可以使用切片语法来创建一个新的字符串:
In [2]: s1 = "abc123"
In [3]: s2 = s1[:3]
In [4]: print s2
abc
要查找位置,您可以使用find()
或index()
字符串方法。
split()
和partition()
方法也可能有用。
这些方法记录在Python docs for sequences。
删除字符串的一部分是不可能的,因为字符串是不可变的。
如果您要处理网址,那么您一定要使用urlparse library。它允许您将URL拆分为其部分。如果你只想删除部分文件路径,那么你必须自己做。