You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何配置单个message handler对所有输入返回同一个处理函数

解决方案

你可以通过以下两种方式实现单个handler匹配所有用户输入触发目标函数的需求:

方案一:使用内置全匹配过滤器(最推荐)

python-telegram-bot 自带了适配该场景的内置过滤器Filters.all,可以匹配所有收到的消息,直接使用即可:

messageHandler(Filters.all, start)

如果是在ConversationHandler的状态分支中使用,直接将该handler加入对应状态的handler列表即可,该状态下所有用户输入都会触发start函数。

方案二:使用正则全匹配

如果你偏好使用正则过滤器实现,直接写匹配任意文本的正则表达式即可,不需要动态拼接用户输入变量:

messageHandler(Filters.regex(r'^.*$'), start)

正则^.*$可匹配任意长度、任意内容的文本输入,完全符合需求。

额外优化(针对你示例中的多关键词匹配场景)

你之前分别匹配Edit和ADD的两个handler也可以合并为一个,不需要重复定义:

messageHandler(Filters.regex(r'^(Edit|ADD)$'), editing)

注意:如果你的handler列表中还有其他匹配规则更精确的handler,请把全匹配handler放在所有handler的最后,避免它提前匹配消息,导致后续精确规则失效。

内容的提问来源于stack exchange,提问作者Vitor Oliveira

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 13:24:07