Получить совпадающий текст из input.text.matches и сохранить в переменной контекста в диалоге Watson

Я имею дело с IBM Watson Conversation. У меня есть текст, содержащий несколько букв и цифр, например age is 26.

Я написал регулярное выражение для соответствия цифрам из текста. Это делается с помощью .*?[0-9]+.*?. Теперь я хочу, чтобы эти совпавшие цифры были включены в переменные контекста.

Как поместить совпадающие цифры в переменную контекста?

Когда мое условие совпадает с наличием input.text.matches('.*?[0-9]+.*?'), я хочу поместить только цифры в мою переменную контекста.

Для примера:

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

Здесь input.text берет весь текст и помещает его в переменную digit.

Как поместить только цифры, применив к тексту регулярное выражение?


person iNikkz    schedule 30.09.2016    source источник
comment
обновленный ответ.   -  person Simon O'Doherty    schedule 14.10.2016


Ответы (2)


Вы можете извлекать регулярные выражения из входного текста следующим образом:

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

Первая часть — это ваше регулярное выражение. Второй параметр — идентификатор группы.

person Simon O'Doherty    schedule 02.10.2016

Второй параметр необходим для работы извлечения, поэтому, если мы хотим извлечь всю совпавшую подстроку, мы используем 0 для extract_id следующим образом:

input.text.extract('[0-9]+', 0)
person Tan Dat    schedule 29.05.2017