You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过@提及(Ping)操作获取目标用户的USER ID?

从@提及参数获取用户ID的实现方法

你使用的是Discord Python机器人框架(如discord.py)的话,直接通过参数类型注解就能自动解析提及内容,无需手动处理字符串:

# 引入必要依赖(如果已引入可忽略)
import discord
from discord.ext import commands

async def id(ctx: commands.Context, ping: discord.Member):
    await ctx.send(f"{ping.mention}, 你的用户ID是 {ping.id}")

核心逻辑说明

  • 给ping参数加上discord.Member类型注解后,框架会自动校验输入是否为有效@提及,不符合要求会自动抛出参数错误,刚好满足你将@提及设为必填参数的需求
  • 解析得到的ping是成员对象,直接调用.id属性即可拿到对应数字类型的用户ID
  • 如果需要支持私信场景、或者查询不在当前服务器的用户,把类型注解替换为discord.User即可

手动解析方案(非常规需求用)

如果你确实需要从纯文本提及字符串自行提取ID,可以用正则匹配:

import re

def extract_user_id(mention_str: str) -> int | None:
    # 匹配<@用户ID>和<@!用户ID>两种提及格式
    match_res = re.fullmatch(r'<@!?(\d{15,20})>', mention_str.strip())
    return int(match_res.group(1)) if match_res else None

内容的提问来源于stack exchange,提问作者Tortle.py

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.12 20:51:03