text.rfind返回最后一次出现的索引offset
:
In [162]: text = "March 1st 2013 ntp[22485] Time server offset -.0070 sec"
In [181]: text.rfind('offset')
Out[181]: 38
所以你可以像这样剪断字符串'offset '
:
In [183]: text[text.rfind('offset ')+len('offset '):]
Out[183]: '-.0070 sec'
或者,您可以使用str.rpartition将其切成text
三块,然后摘下第三块(也是最后一块):
In [179]: text.rpartition('offset ')
Out[179]: ('March 1st 2013 ntp[22485] Time server ', 'offset ', '-.0070 sec')
In [169]: text.rpartition('offset ')[-1]
Out[169]: '-.0070 sec'
或者,您可以使用str.rsplit在最后一次出现时拆分字符串'offset '
:
In [180]: text.rsplit('offset ', 1)
Out[180]: ['March 1st 2013 ntp[22485] Time server ', '-.0070 sec']
In [172]: text.rsplit('offset ', 1)[1]
Out[172]: '-.0070 sec'
1
intext.rsplit('offset ', 1)
告诉最多rsplit
拆分1个text
位置。
rfind
,rsplit
并且rpartition
每个都对从右边开始的字符串进行操作。所以即使text
包含子字符串'offset '
两次,他们仍然会找到子字符串的最后一次出现。