Python 删除第n次出现之前的所有字符

Python 删除第n次出现之前的所有字符,python,substring,Python,Substring,Python中的SQL是否有一个与CHARINDEX/SUBSTRING相当的 我要做的是删除第3个“之前和第4个”之后的字符,这意味着它只剩下数值 a = "[counter('check', Id('23345675'))]" 预期的字符串输出: a = "23345675" 听起来像是某种正则表达式解析的工作: import re test_string = "[counter('check', Id('23345675'))]&q

Python中的SQL是否有一个与CHARINDEX/SUBSTRING相当的

我要做的是删除第3个
之前和第4个
之后的字符,这意味着它只剩下数值

a = "[counter('check', Id('23345675'))]"

预期的字符串输出:

a = "23345675"

听起来像是某种正则表达式解析的工作:

import re

test_string = "[counter('check', Id('23345675'))]"
pattern = re.compile(r"(?:.*?'){3}(.*?)'")
m = pattern.match(test_string )
print(m.group(1))

该模式实质上是说,找到以“3次”结尾的任何内容,然后捕获该部分直到下一个“

如果您想要第3次和第4次之间的所有内容
,您可以在
上拆分该字符串并获取第3部分:

a = "[counter('check', Id('23345675'))]"
a.split("'")[3]  # "23345675"
请注意,您也可以拆分一定次数,例如,如果您希望在第三次
'之后进行拆分,请执行以下操作:

a.split("'", 3)[-1]  # this gives: "23345675'))]"

不太熟悉SQL,但您是否正在寻找类似的东西

>>> a.split("'")[3]
'23345675'