在Python中特定出现的字符之前删除文本

时间:2014-04-22 21:12:18

标签: python

假设我有一个这样的字符串:

string1 = 'bla/bla1/blabla/bla2/bla/bla/wowblawow1'

我需要在最后一个'/'之后取出文本并删除其他所有内容:

string2 = 'wowblawow1'

我可以使用任何方法吗?

4 个答案:

答案 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.pathhttps://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:]