【问题标题】:Hubot Not Responding to regexHubot 不响应正则表达式
【发布时间】:2015-11-23 15:36:22
【问题描述】:

我正在研究一个 hubot 松弛集成,但遇到了一些障碍。我正在尝试让 hubot 响应这个正则表达式

(\d{4}\-){3}\d{4}

但由于某种原因,它不起作用。

代码片段

robot.respond /(\d{4}\-){3}\d{4}/i, (msg) ->
    msg.send "Words, Words, Words"

任何帮助将不胜感激。

问候, 奥斯汀

【问题讨论】:

  • 改用hear。或者试试/.*\b(\d{4}\-){3}\d{4}\b.*/irespond。甚至/[\s\S]*\b(\d{4}\-){3}\d{4}\b[\s\S]*/i.
  • 并删除i,因为这里没有字母 - 无需检查区分大小写。
  • it will not work 变成非常具有描述性的东西。没有人能看到你在做什么。
  • @stribizhev 成功了。谢谢

标签: regex coffeescript hubot slack


【解决方案1】:

在 Hubot 中,respond 正则表达式是锚定的,所以整个字符串应该匹配。

因此,您需要在正则表达式的两端添加.*[\s\S]*。另外,我建议添加单词边界\b 以确保匹配整个单词。

因此,如果输入中有换行符,请使用

/[\s\S]*\b(\d{4}\-){3}\d{4}\b[\s\S]*/

如果没有换行符,就用

/.*\b(\d{4}\-){3}\d{4}\b.*/

注意不区分大小写的修饰符在这里是多余的,因为模式中没有字母。

【讨论】:

    猜你喜欢
    • 2018-09-10
    • 2021-12-06
    • 2011-02-24
    • 2020-10-29
    • 1970-01-01
    • 1970-01-01
    • 2019-08-01
    • 1970-01-01
    相关资源
    最近更新 更多