从 input.text.matches 中检索匹配的文本并存储到 watson 对话中的上下文变量中

Retrieve matched text from input.text.matches and store into context variable in watson conversation

我正在处理 IBM Watson Conversation。我有一个包含几个 字母和数字 的文本,即 age is 26

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

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

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

例如:

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

此处 input.text 获取整个文本并将其放入 digit 变量中。

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

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

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

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

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

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