如何获得某个字符之前的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'