如何在消息中查找所有 Discord 邀请

How to find all Discord Invites in a message

如何在消息中查找所有 Discord 服务器邀请。我以前问过类似的问题,但不知何故对我不起作用。所以我来到这里。我在互联网上找不到更多相关信息。 “re”包可能有效,但正则表达式是什么?

import re

inviteregex = re.compile(r'discord(.gg|.com/invite)/.{3,10}')
links = re.findall(inviteregex, 'here is the link discord.gg/gpDcZfF')
print(links)

预期结果:

['discord.gg/gpDcZfF']

但结果是:

['.gg']

邀请的正则表达式是下一个:

(?:https?://)?discord(?:(?:app)?\.com/invite|\.gg)/?[a-zA-Z0-9]+/?

应用于on_message事件

async def on_message(message):
    invite_regex = re.compile("(?:https?://)?discord(?:(?:app)?\.com/invite|\.gg)/?[a-zA-Z0-9]+/?")
    result = invite_regex.findall(message.content)

    print(result)

这里我做了一个正则表达式,可以识别来自dsc.gg和discord.io

的邀请
(https|http)://(dsc\.gg|discord\.gg|discord\.io|dsc\.lol)/?[\S]+/?

https://regex101.com/r/qUsc7J/1