删除python中的部分字符串(最多但不包括)

use*_*462 2 python

我正试图去除部分字符串.

例如地带: -

a = xyz-abc
Run Code Online (Sandbox Code Playgroud)

离开:-

a = -abc
Run Code Online (Sandbox Code Playgroud)

我通常会使用lstrip例如

a.lstrip('xyz')
Run Code Online (Sandbox Code Playgroud)

但是在这种情况下我不知道xyz会是什么,所以我需要一种方法来去除' - '左边的所有内容.

是否可以使用lstrip设置该选项,或者我必须以不同的方式进行此操作?

谢谢.

sen*_*rle 6

如果只有一个-字符,这将有效:

'xyz-abc'.split('-')[1]
Run Code Online (Sandbox Code Playgroud)

如果你想要'-'在那里,你必须重新连接它:

>>> '-' + 'xyz-abc'.split('-')[1]
'-abc'
Run Code Online (Sandbox Code Playgroud)

还有count参数,允许您仅在第一个-字符处进行拆分.

>>> '-' + 'xyz-ab-c'.split('-', 1)[1]
'-ab-c'
Run Code Online (Sandbox Code Playgroud)

partition 也有用:

>>> 'xyz-abc'.partition('-')
('xyz', '-', 'abc')
Run Code Online (Sandbox Code Playgroud)

它在第一次出现分隔符时分裂:

>>> ''.join('xyz-ab-c'.partition('-')[1:])
'-ab-c'
Run Code Online (Sandbox Code Playgroud)