如何获得某个字符之前的string的最后一部分?

我正在试图打印某个字符之前的string的最后一部分。

我不太确定是使用string.split()方法还是使用string切片或其他方法。

下面是一些不起作用的代码,但是我认为它显示了逻辑:

x = 'http://test.com/lalala-134' print x['-':0] # beginning at the end of the string, return everything before '-' 

请注意,最后的数字会有所不同,所以我无法从string的末尾设置精确的计数。

你正在寻找str.rsplit() ,有一个限制:

 print x.rsplit('-', 1)[0] 

.rsplit()从inputstring的末尾search分割string,第二个参数限制它将分割为一次的次数。

另一个select是使用str.rpartition() ,它只会分割一次:

 print x.rpartition('-')[0] 

为了分割一次, str.rpartition()也是更快的方法; 如果你需要分割多次,你只能使用str.rsplit()

演示:

 >>> x = 'http://test.com/lalala-134' >>> print x.rsplit('-', 1)[0] http://test.com/lalala >>> 'something-with-a-lot-of-dashes'.rsplit('-', 1)[0] 'something-with-a-lot-of' 

str.rpartition()

 >>> print x.rpartition('-')[0] http://test.com/lalala >>> 'something-with-a-lot-of-dashes'.rpartition('-')[0] 'something-with-a-lot-of'