我試圖剝離部分字符串。在python中刪除部分字符串(最多但不包括)
例如條: -
a = xyz-abc
離開: -
a = -abc
我通常會使用lstrip例如
a.lstrip('xyz')
但在這種情況下,我不知道是什麼某某將是,所以我需要一種方法來只是剝奪一切的左「 - 」。
是否可以使用lstrip設置該選項,還是必須以不同的方式進行設置?
謝謝。
我試圖剝離部分字符串。在python中刪除部分字符串(最多但不包括)
例如條: -
a = xyz-abc
離開: -
a = -abc
我通常會使用lstrip例如
a.lstrip('xyz')
但在這種情況下,我不知道是什麼某某將是,所以我需要一種方法來只是剝奪一切的左「 - 」。
是否可以使用lstrip設置該選項,還是必須以不同的方式進行設置?
謝謝。
>>> a = 'xyz-abc'
>>> a.find('-') # return the index of the first instance of '-'
3
>>> a[a.find('-'):] # return the string of everything past that index
'-abc'
您可以使用.find
的拼寫和拼接。
不錯,謝謝。 – user788462 2012-02-17 03:00:19
如果只有一個-
字符,這將工作:
'xyz-abc'.split('-')[1]
如果你想在那裏'-'
,你必須重新裝上:
>>> '-' + 'xyz-abc'.split('-')[1]
'-abc'
還有數參數,可以讓你僅在第一個-
角色分割。
>>> '-' + 'xyz-ab-c'.split('-', 1)[1]
'-ab-c'
partition
也可能有用:
>>> 'xyz-abc'.partition('-')
('xyz', '-', 'abc')
它分裂在分離器中第一次出現:
>>> ''.join('xyz-ab-c'.partition('-')[1:])
'-ab-c'
這會擺脫'''',所以你必須做'' - '+ ...'。另外,'.split(' - ',1)'強制它只分裂一次。 – 2012-02-17 02:49:42
@senderie感謝您的快速回復。 – user788462 2012-02-17 03:01:48
如果不能保證文本的-
左不包含其自身的破折號,find
的翻轉版本rfind
甚至更有用:
>>> s = "xyv-er-hdgcfh-abc"
>>> print s[s.rfind("-"):]
-abc
給我們寫一些單元測試,以瞭解它應該如何工作。 – hughdbrown 2012-02-17 02:47:10