我有此字符串/1B5DB40?full,我想将其转换为1B5DB40

我需要删除?full和前面的/

我的站点的结尾不一定总是?full,所以即使?full不存在,我也需要一些仍然可以工作的东西。

谢谢,希望这不会让您感到困惑:)

编辑:
我知道我可以在0和8处进行分割,但1B5DB40可以更长或更短。例如,它可能是/1B5DB4000?full/1B5

最佳答案

使用str.lstrip(删除开头的/)和str.split(删除?之后的可选部分):

>>> '/1B5DB40?full'.lstrip('/').split('?')[0]
'1B5DB40'

>>> '/1B5DB40'.lstrip('/').split('?')[0]
'1B5DB40'

或使用urllib.parse.urlparse
>>> import urllib.parse
>>> urllib.parse.urlparse('/1B5DB40?full').path.lstrip('/')
'1B5DB40'
>>> urllib.parse.urlparse('/1B5DB40').path.lstrip('/')
'1B5DB40'

09-29 20:52