将参数传递给电报机器人并使用正则表达式解析?

我有这应该创建一个新的数据库,当用户输入/newdb nameofdatabase将参数传递给电报机器人并使用正则表达式解析?

Telegram::Bot::Client.run(token) do |bot| 

bot.listen do |message|

case message.text

when '/newdb.*/'

bot.api.send_message(chat_id: message.chat.id, text: "created!, #{message.from.first_name}")

end

end

end

我使用正则表达式的字符串,试图捕捉用户的消息,事后分析它的电报机器人。 不幸的是,机器人不会给定的命令做出响应(在这种情况下,不打印"created!"行。”

我该如何去使用Ruby包装器,捕捉用户输入到电报机器人?

回答:

这是因为/是在正则表达式元字符,这里是一个正确的正则表达式:

Telegram::Bot::Client.run(token) do |bot| 

bot.listen do |message|

case message.text

when /^\/newdb\s(.*)/

database = $~[1] # get the database name. $~[N] regexp matches.

bot.api.send_message(chat_id: message.chat.id, text: "created!, #{message.from.first_name}")

end

end

end

%r|\A/newdb\b.*|:使用\A除非你明确地追在消息的中间回车后以及使用时%r符号FO当它包含斜杠时,r会返回正则表达式。 THX @mudasobwa

检查正则表达式表达here

以上是 将参数传递给电报机器人并使用正则表达式解析? 的全部内容, 来源链接: utcz.com/qa/265400.html

回到顶部