Python 捕获字符串中的子字符串-动态

Python 捕获字符串中的子字符串-动态,python,pandas,substring,Python,Pandas,Substring,我有一个字符串: ostring = "Ref('r1_featuring', ObjectId('5f475')" 我试图做的是搜索字符串并检查它是否以Ref开头,如果它以Ref开头,则应删除字符串中的所有内容并保留子字符串5f475 我知道这可以通过以下简单的替换来完成: string = ostring.replace("Ref('r1_featuring', ObjectId('", '').replace("')", ''

我有一个字符串:

ostring = "Ref('r1_featuring', ObjectId('5f475')"

我试图做的是搜索字符串并检查它是否以
Ref
开头,如果它以
Ref
开头,则应删除字符串中的所有内容并保留子字符串
5f475

我知道这可以通过以下简单的替换来完成:

string = ostring.replace("Ref('r1_featuring', ObjectId('", '').replace("')", '')
但我不能这样做,因为它需要所有的动态,因为每次都会有不同的字符串。所以我需要这样做,它将搜索字符串并检查它是否以
Ref
开头,如果是,则获取字母数字值

所需输出:

5f475
任何帮助都将不胜感激。

像这样吗

>>重新导入
>>>pattern=r“Ref.*”(.*)\$”
>>>m=重新匹配(模式,“Ref('r1_),ObjectId('5f475'))
>>>如果m:
…打印(m.group(1))
...
5f475
#>=蟒蛇3.8
>>>如果m:=重新匹配(模式,“Ref('r1_),ObjectId('5f475')”):
…打印(m.group(1))
...
5f475
像那样吗

>>重新导入
>>>pattern=r“Ref.*”(.*)\$”
>>>m=重新匹配(模式,“Ref('r1_),ObjectId('5f475'))
>>>如果m:
…打印(m.group(1))
...
5f475
#>=蟒蛇3.8
>>>如果m:=重新匹配(模式,“Ref('r1_),ObjectId('5f475')”):
…打印(m.group(1))
...
5f475
无正则表达式的解决方案:)

ostring=“Ref('r1_特征',ObjectId('5f475')”
如果使用“参考”开始:
所需的部分=ostring.rpartition(“(”)[-1]。rpartition(“)”[0]
无正则表达式的解决方案:)

ostring=“Ref('r1_特征',ObjectId('5f475')”
如果使用“参考”开始:
所需的部分=ostring.rpartition(“(”)[-1]。rpartition(“)”[0]

我已经包含了一个所需的输出,它应该只返回QuotesEditied中的字母数字值。回答第一个为我工作,只需替换字符串“Ref('r1_),ObjectId('5f475')”对于变量
ostring
要使其动态化,如果包含了所需的输出,它应该只返回quotesEdited中的字母数字值。第一个答案对我有效,只需将字符串
“Ref('r1',ObjectId('5f475')”
替换为变量
ostring
,使其动态化