我有一个电报机器人,我想删除文本中的所有链接,但在这里,我有两个问题:
1.我不知道如何删除所有的ID像这样:@id
与当前正则表达式,我在我的代码
2.我还想删除所有的字符串有链接(在电报添加链接到一个文本,选择文本,然后右键单击>格式>创建链接,然后你的文本的颜色会变成蓝色,你的文本将成为一个链接)
这是我当前的代码,并从输入中删除链接:
bot.on("text", async function (msg){
const text = msg.text.replace(
/\b((?:[a-z][\w-]+:(?:\/{1,3}|[a-z0-9%])|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}\/)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:'".,<>?«»“”‘’]))/g,
""
);
console.log(text);
})
bot.start();
字符串
但我想删除id(@后的一切)和文本包含链接
- 我还使用TeleBot来使用Telegram bot*
2条答案
按热度按时间6mzjoqzu1#
您可以使用
|\B@[^\s@]+
向您的模式添加一个交替|
,它匹配@后跟除@以外的任何字符或空格字符注意,只有匹配时,才可以将第一个部分的外部捕获组转换为非捕获组,因为只使用空字符串替换匹配。
字符串
See a regex demo
vsdwdz232#
就用这个
字符串
删除@之后所有内容