如何提取这个字符串的id?

San*_*nka -1 python substring


对于其他字符串,它工作正常,但无法获取数字。有什么建议么?

text = "<:Valorant:946399790739099688><@&945697242994602054>"
start = text.find("<@&") + len("<@&")
end = text.find(">")
print(text[start:end])
Run Code Online (Sandbox Code Playgroud)

Cor*_*mer 6

您可以使用正则表达式搜索来提取第一个数字

>>> import re
>>> text = "<:Valorant:946399790739099688><@&945697242994602054>"
>>> m = re.search(':(\d+)', text)
>>> m.group(1)
'946399790739099688'
Run Code Online (Sandbox Code Playgroud)

如果 id 是第二个数字那么你可以使用

>>> m = re.search('@&(\d+)', text)
>>> m.group(1)
'945697242994602054'
Run Code Online (Sandbox Code Playgroud)