Python3删除字符串上的before和after

Python3删除字符串上的before和after,python,string,python-3.x,Python,String,Python 3.x,我有这个字符串/1B5DB40?full,我想将它转换成1B5DB40 我需要卸下?全和前部/ 我的网站不会总是在结尾有?full,所以我需要一些即使?full不存在也仍然有效的东西 谢谢,希望这不会太让人困惑,无法得到帮助:) 编辑: 我知道我可以在0和8或任何位置切片,但是1B5DB40可以更长或更短。例如,它可以是/1B5DB4000?完整的或/1B5,使用(删除前导的/)和(删除之后的可选部分?): 或使用: 您可以使用lstrip和rstrip: >>> data.l

我有这个字符串
/1B5DB40?full
,我想将它转换成
1B5DB40

我需要卸下
?全
和前部
/

我的网站不会总是在结尾有
?full
,所以我需要一些即使
?full
不存在也仍然有效的东西

谢谢,希望这不会太让人困惑,无法得到帮助:)

编辑:
我知道我可以在0和8或任何位置切片,但是
1B5DB40
可以更长或更短。例如,它可以是
/1B5DB4000?完整的
/1B5
,使用(删除前导的
/
)和(删除
之后的可选部分?
):

或使用:


您可以使用
lstrip
rstrip

>>> data.lstrip('/').rstrip('?full')
'1B5DB40'

这仅在您要提取的部分中没有字符
f
u
l
/
时有效。

您可以使用正则表达式:

>>> import re

>>> extract = re.compile('/?(.*?)\?full')
>>> print extract.search('/1B5DB40?full').group(1)
1B5DB40
>>> print extract.search('/1Buuuuu?full').group(1)
1Buuuuu

正则表达式呢

import re
re.search(r'/(?P<your_site>[^\?]+)', '/1B5DB40?full').group('your_site')
重新导入
重新搜索(r'/(?P[^\?]+),'/1B5DB40?full')。组(“您的站点”)
在本例中,它匹配
“/”
“?”
之间的所有内容,但您可以根据自己的具体需求进行更改

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

如果没有找到分隔符,将只返回包含原始字符串的单个元素列表。

@pvg I更新了我的问题。字符串将是不同的大小,这是我无法理解的。如果我在0和8处切片,那么它就不起作用了。你能在“/”和“?”处切片吗?@falsetru即使没有
?full
,它也能起作用,因为有时候字符串没有它?很抱歉,我是python新手,所以我一直在尝试解决这个问题。
string[1:].replace(“?full”,”)
如果
数据是
“/1Buuuu?full”
?@falsetru:你说得对,我不知道!
import re
re.search(r'/(?P<your_site>[^\?]+)', '/1B5DB40?full').group('your_site')
>>> '/1B5DB40?full'split('/')[1].split('?')[0]
'1B5DB40'
>>> '/1B5'split('/')[1].split('?')[0]
'1B5'
>>> '/1B5DB40000?full'split('/')[1].split('?')[0]
'1B5DB40000'