Hubot 不响应正则表达式
Hubot Not Responding to regex
我正在研究 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.*/
请注意,这里不区分大小写的修饰符是多余的,因为模式中没有字母。
我正在研究 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.*/
请注意,这里不区分大小写的修饰符是多余的,因为模式中没有字母。