从input.text.matches中检索匹配的文本并将其存储到watson对话

时间:2016-09-30 10:45:32

标签: regex watson-conversation watson-dialog

我正在处理 IBM Watson Conversation 。我的文字包含少量字母和数字,即age is 26

我写了一个正则表达式来匹配文本中的数字。它是使用.*?[0-9]+.*?完成的。现在,我希望那些匹配的数字成为上下文变量

如何将匹配的数字放入上下文变量?

当我的条件与input.text.matches('.*?[0-9]+.*?')匹配时,我只想将数字放在我的上下文变量中。

对于Ex:

{
    "context": {
               "digit": { input.text } 
    }
}

此处input.text获取整个文本并将其置于数字变量中。

如何通过在文字上应用正则表达式来仅放置数字?

2 个答案:

答案 0 :(得分:0)

您可以从输入文本中提取正则表达式,如下所示:

input.text.extract('.*?([0-9]+).*?', 1)

第一部分是你的正则表达式。第二个参数是组ID。

答案 1 :(得分:0)

第二个参数是提取工作所必需的,所以如果我们想要提取整个匹配的子字符串,我们使用0作为extract_id,如下所示:

input.text.extract('[0-9]+', 0)