本文介绍了在电报命令中使用正则表达式的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
通过发送以
Test by sending a message starting by
问题描述
限时送ChatGPT账号..好吧,下面的代码为 /start
命令添加了一个命令处理程序:
Well, the following code adds a command handler for the /start
command:
dp = updater.dispatcher
dp.add_handler(CommandHandler('start', start))
我想添加一个处理程序,它可以在一个处理程序中处理 /download_video
、/download_music
等命令.
I want to add a handler which would handle commands like /download_video
, /download_music
and so on all in one handler.
我想到的是:
dp.add_handler(CommandHandler(r'^download', download))
但它没有按预期工作!相反,当我发送 /^download
But it doesn't work as supposed! Instead it will work when I send a non-command string of /^download
我该怎么做?
推荐答案
迟到的答案.一种简单的方法是解析所有文本消息并检查它们是否以匹配的单词开头,即:
Late answer. A simple way is to parse all text messages and check if they start with the matching word, i.e.:
from telegram.ext import Updater, CommandHandler, MessageHandler, Filters
import re
def parse_msg(update, context):
if re.search("^(/test|/something_else)$", update.message.text, re.IGNORECASE | re.DOTALL):
update.message.reply_text("send your content")
def main():
updater = Updater("your_token", use_context=True)
dp = updater.dispatcher
dp.add_handler(MessageHandler(Filters.text, parse_msg)) # parses all text messages
updater.start_polling()
updater.idle()
if __name__ == '__main__':
main()
通过发送以
/test
或 /something_else
开头的消息进行测试如果您打算在频道中使用它,请确保机器人有权读取消息:@Botfater >/setprivacy
->@bot_name
->禁用
Test by sending a message starting by
/test
or /something_else
If you plan to use this in a channel, make sure the bot has permission to read messages:
@Botfater > /setprivacy
-> @bot_name
-> Disable
这篇关于在电报命令中使用正则表达式的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
更多推荐
[db:关键词]
发布评论