假设我有一个这样的字符串:
string1 = 'bla/bla1/blabla/bla2/bla/bla/wowblawow1'
我需要在最后一个'/'之后取出文本并删除其他所有内容:
string2 = 'wowblawow1'
我可以使用任何方法吗?
答案 0 :(得分:5)
string1 = 'bla/bla1/blabla/bla2/bla/bla/wowblawow1'
string2 = string1.split(r'/')[-1] # Out[2]: 'wowblawow1'
请参阅https://docs.python.org/2/library/stdtypes.html#str.split了解其运作方式。但正如@Emilien建议的那样,如果要寻找提取基名,请使用os.path
:https://docs.python.org/2/library/os.path.html
答案 1 :(得分:4)
或许你甚至在寻找这个?
>>> import os
>>> os.path.basename("/var/log/syslog")
'syslog'
>>> os.path.dirname("/var/log/syslog")
'/var/log'
答案 2 :(得分:1)
我在处理正斜杠时通常使用os.path.basename
。
答案 3 :(得分:0)
我知道这可能不是最实用的方法,但通常会在最后一次出现之后尝试找到内容:
string1 = 'bla/bla1/blabla/bla2/bla/bla/wowblawow1'
index = (len(string1)-1) - string1[::-1].find('/')
string1 = string1[index+1:]
deatils:
string1[::-1] # reverse the string
string1[::-1].find(my_string_to_search_for) # gets the index of the first occurance of the argument in the string.
(len(string1)-1) # the maximum index value
(len(string1)-1) - string[::-1].find(my_string_to_search_for) # the index as taken from the front of the string
string1 = string1[index+1:] # gives the substring of everything after the index of the last occurance of your string
您可以通过执行以下操作使代码更具可读性:
def get_last_index_of(string,search_content):
return (len(string)-1) - string[::-1].find(search_content)
string1 = 'bla/bla1/blabla/bla2/bla/bla/wowblawow1'
string1 = string1[get_last_index_of('/')+1:]