在电报命令中使用正则表达式

编程入门 行业动态 更新时间:2024-10-23 13:23:03
本文介绍了在电报命令中使用正则表达式的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

限时送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:关键词]

本文发布于:2023-05-01 07:17:12,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1405892.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:电报   命令   正则表达式

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!