我有一个简单的 Hubot 脚本,它正在寻找某些触发词,然后使用基于这些触发词的 URL 进行回复。
一个稍微做作的例子:
robot.hear /CAT/i, (msg) ->
msg.send "This is a URL - www.example.com/browse/cats"
robot.hear /YELLOWBIRD/i, (msg) ->
msg.send "This is a URL - www.example.com/browse/yellowbirds"
robot.hear /BIRD/i, (msg) ->
msg.send "This is a URL - www.example.com/browse/birds"
问题是,其中一个触发词(BIRD)是另一个触发词(YELLOWBIRD)的子串。
在这种情况下,我只想触发更具体的正则表达式(YELLOWBIRD)。
然而,Hubot 目前正在触发这两个正则表达式 - 即它将发送:
This is a URL - www.example.com/browse/yellowbirds
This is a URL - www.example.com/browse/birds
有没有办法让 Hubot 将正则表达式列表视为一个案例 - 例如,它将从顶部通过它们,并且它命中的第一个,它会爆发,而不是处理其余的?(或者如果那里有黄色,也许有一种方法可以让“BIRD”正则表达式忽略)。
还有一个额外的问题 - 是否有更好或更惯用的方式来组织这些正则表达式和回复?某种查找表之类的?