regex - Hubot 不响应正则表达式

标签 regex coffeescript hubot slack

我正在研究 hubot slack 集成,但遇到了一些困难。我正在尝试让 hubot 响应此正则表达式

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

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

代码片段

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

任何帮助将不胜感激。

问候, 奥斯汀

最佳答案

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

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

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

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

如果没有换行符,就使用

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

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

关于regex - Hubot 不响应正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33874837/

相关文章:

javascript - Jasmine 和 Jquery,加载一个 JSON 文件

node.js - 我在哪里可以看到 hubot 记录器消息?

node.js - hubot脚本加载yaml文件,不适用于相对路径

coffeescript - 如何使用 hubot 将项目固定在 slack channel 中?

c# - .NET 正则表达式模式?

c# - 是否可以使用 String.Split 或正则表达式将字符串拆分为字符串数组并删除不在分隔符之间的部分?

Javascript:正则表达式从字符串中获取值

regex - emacs:使用(字符串匹配)在字符串中查找子字符串

ruby-on-rails - Reactjs-rails 的预渲染问题

javascript - window.location.href 和 hash 在 chrome 上不起作用