Почему Уотсон не распознает это регулярное выражение 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. Обычно, когда нам нужно использовать более сложные регулярные выражения, мы в конечном итоге используем на прикладном уровне.

Другие вопросы по тегам