2

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

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

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

代码片段

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

任何帮助将不胜感激。

问候, 奥斯汀

4

1 回答 1

2

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

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

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

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

如果没有换行符,只需使用

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

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

于 2015-11-23T16:44:56.207 回答