Почему Уотсон не распознает это регулярное выражение input.text.find("(\\d)\\1+")?
Я пытаюсь распознать повторяющиеся числа из текста пользователя.
Например: 112345
Уотсон должен распознать повторный 1 (один) и ответить определенным текстом, однако не распознает этот шаблон.
Я использую следующее, чтобы распознать тот шаблон, который не работает:
input.text.find("(\\d)\\1+")
1 ответ
К сожалению, Watson Assistant не поддерживает Backreferente для регулярных выражений.
Вот документация об этом.
"Шаблоны сущностей могут не содержать:
- Положительные повторения (например, х *+)
- Обратные ссылки (например, \g1)
- Условные переходы (например (?(Cond) true)) "
https://console.bluemix.net/docs/services/conversation/entities.html
Эта часть посвящена регулярному выражению для сущностей, но во всех моих тестах она также действительна для распознавания регулярных выражений в text.input. Обычно, когда нам нужно использовать более сложные регулярные выражения, мы в конечном итоге используем на прикладном уровне.