我正在写信给机器人的电报,你怎么能让它无视这些信息呢?“经理”,“合同”,“通知”首先是某种表情,然后是文字。我试图通过regex来完成我正在使用的库node-telegram-bot-api
bot.onText(/(.+)/, (msg, match) => {
if ((/^([/^[a-zA-Z]*$/]*)$/.test(msg.text))) {
return;
}
)}
发布于 2021-02-23 20:26:02
您可以使用以下正则表达式过滤所有(或至少许多)遵循给定格式的表情符号和短语:
if( /^(\u00a9|\u00ae|[\u2000-\u3300]|\ud83c[\ud000-\udfff]|\ud83d[\ud000-\udfff]|\ud83e[\ud000-\udfff]) ([A-Za-z])\w+/.test(msg.text))) {
return;
}
简要介绍我们的要领:
我们验证字符串的开头是否与我们的第一个捕获组匹配,其中包含对常见表情符号字符和范围(来源)的检查:
^(\u00a9|\u00ae|[\u2000-\u3300]|\ud83c[\ud000-\udfff]|\ud83d[\ud000-\udfff]|\ud83e[\ud000-\udfff])
我们检查我们的表情符号后面有一个空格和一个单词:
([A-Za-z])\w+
编辑:最初在正则表达式的末尾添加了一个.*
,现在删除了它,因为它对于当前的目的来说是多余的。
https://stackoverflow.com/questions/66340294
复制相似问题