javascript - 所有 Discord 标记类型的正则表达式模式
问题描述
做一些 discord.js 机器人开发,我正在尝试创建一个正则表达式,它将过滤掉所有类型的不和谐标签(又名标记的用户和自定义表情)。我尝试了一些不同的东西,但没有一个能捕捉到每一个案例。标签的5种主要样式是:
<@108012418998792192> (User)
<@!420279649055145996> (User)
<:oof:463391326491377674> (Emote without number in name)
<:Tyler1:311344841466576896> (Emote with number in name)
<:1234:123412314353463456> (Emote that just has number in name)
我遇到的主要问题之一是标签类型的多样性。如果您注意到一个用户有一段@!
时间,另一个用户刚@
开始有一段时间。表情是一个完全不同的故事:ALPHA_NUMERIC:
。
这个机器人过滤了很多消息,所以我试图让它尽可能高效和紧凑。
我试过做类似的事情
arg.replace(/<\D+\d+>/g, '').trim();
arg.replace(/<\D+\w+>/g, '').trim();
但它无法过滤掉最后 2 个。
解决方案
推荐阅读
- c# - C# LINQ OrderBy X 最高,Y 最低?
- c# - 为什么图像在 Hololens 中具有不同的像素分辨率
- c# - VS中的Azure函数本地开发找不到函数
- apache - Apache 反向代理背后的 Jersey + Grizzly - 找不到资源
- c++ - 泛型调用的枚举模板函数
- php - Lumen 5.6:会话的替代方案
- python - 使用 json_populate_record 将日期时间插入数据库
- sql - 删除通过查询找到的所有数据
- javascript - 线没有正确绘制
- javascript - 当我运行用 javascript 编写的调用应用程序时出现以下错误