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