#regex #entity #dialogflow-es #message #detect
#регулярное выражение #объект #dialogflow-es #Сообщение #обнаружить
Вопрос:
У меня есть сообщение, отправленное в DialogFlow, похожее на: I wanna go to <@U12A0GF233T>
и я хочу, чтобы DialogFlow мог обнаруживать U12A0GF233T
как объект.
Итак, я создал объект @place
со значением ^<@([A-Z])w >
.
Но когда сообщение было получено, dialogFlow не может обнаружить @place
.
Я протестировал свое регулярное выражение на https://regexr.com /, это работает, но это не работает в DialogFlow.
Я допустил здесь какую-то ошибку?
Комментарии:
1. Попробуйте использовать больше слов, чтобы описать то, что вам нужно.
2.Шаблон
^<@([A-Z])w >
сам по себе не соответствуетU12A0GF233T
,I wanna go to <@U12A0GF233T>
попробуйте сделать это так^[^<>]*<@([A-Z]w )>
regex101.com/r/ps3V7J/13. @Thefourthbird Я допустил ошибку, когда использовал шаблон регулярных выражений Javascript для Python (^_^»). Но с вашим шаблоном, когда я тестирую с
I want to move my home office to <@U12A0GF233T>
помощью (например). Был возвращен результатoffice to <@U12A0GF233T>
. Я меняю шаблон на^*<@([A-Z]w )>
, и он работает. Я не знаю Python, поэтому я не уверен, что этот раздел верен. Но ты спас меня. Большое вам спасибо.4. Может быть, вы просто хотите
<@([A-Z]w*)>
?5. @Thefourthbird Нет, когда я добавляю
^.*<@([A-Z]w )>
значение объекта DialogFlow, оно неправильно определило фразу<@U12A0GF233T>
. Когда я использую^*<@([A-Z]w )>
, и он обнаруживает правильно (по крайней мере, на данный момент в тех случаях, которые я пробовал). Ха-ха. Я не знаю почему.
Ответ №1:
В основном Google Dialogflow использует библиотеку RE2 C для регулярных выражений, связанных с объектом, что может немного изменить общий диалект регулярных выражений, просто следуйте этой странице синтаксиса RE2.
В объясненном варианте использования я закончил настройку шаблона регулярных выражений либо с помощью:
^*<@([A-Z]w )>
Или
<@([A-Z]w )>