我对正则表达式完全没用,需要帮助。我正在为我的工作创建一个HipChat机器人,它将从HipChat创建JIRA票证.HipChat机器人能够监控聊天室的关键字..然后在使用关键字时运行JavaScript。
在我的情况下,我希望Bot监控 -
"/ask ********************************"
*
= JIRA问题正文无限长的文本
所以对于这个,我需要正则表达式来挂钩,并且正则表达式将描述文本移动到一个变量..这里的任何人都可以帮助吗?
如果我没有很好地解释自己,下面是“Karma”如何工作的例子(addon.webhook)。谢谢!
答案 0 :(得分:1)
你可以简单地使用这个正则表达式:
^\/ask (.*)$
它将捕获/ask
之后的文本。请注意这里的转义反斜杠。由于您使用的是Javascript,因此实际表达式与分隔符一起使用,例如:
/^\/ask (.*)$/
这里有一个正在使用的regex101:https://regex101.com/r/tZ0iB6/1
答案 1 :(得分:0)
这是一个安静的简单正则表达式:
var matches = /^\/ask\s+(.*)$/i.exec(str);
if (matches && matches.length > 0) {
var content = matches[1];
}
如果您想匹配多个不同的命令,可以使用以下内容:
var matches = /^\/([^\s]+)\s+(.*)$/g.exec(str);
if (matches && matches.length > 0) {
var command = matches[1];
var content = matches[2];
switch(command.toLowerCase()) {
case 'ask':
// do something
break;
default:
// command not found
break;
}
}
修改强>
变量str必须是输入字符串。
var str ='/ ask *****';