我想创建一个 Hubot 脚本来侦听如下所示的字符串:
thanks Hubot
Hubot
机器人名称在哪里。如果我们假设 bot 总是被命名hubot
,那么它是微不足道的:
robot.hear /thanks hubot/i, (msg) ->
...
但是名称当然可以有所不同,尽管包含在robot.name
变量中。
问题:如何将机器人的名称插入到正则表达式中? 这个问题似乎表明您可以只使用块正则表达式,但我尝试过:
robot.hear ///thanks #{robot.name}///i, (msg) ->
....
它似乎没有用。
编辑:我有一个解决方法,我可以提取第二个单词并与机器人的名称进行比较,如下所示:
robot.hear /thanks (.*)/i, (msg) ->
name = msg.match[1]
if name.toLowerCase() is robot.name.toLowerCase()
....
但这感觉相当笨拙,我希望能够将一个变量插入到正则表达式本身中。