【问题标题】:Dialogflow regex entity does not capture message phraseDialogflow 正则表达式实体不捕获消息短语
【发布时间】:2020-10-23 05:57:10
【问题描述】:

我有一条消息发送到 DialogFlow,如下所示:I wanna go to <@U12A0GF233T>,我希望 DialogFlow 可以将 U12A0GF233T 检测为一个实体。
所以我创建了一个实体@place,其值为^\<@([A-Z])\w+\>。
但是当消息被接收时,dialogFlow 无法检测到@place。
我在https://regexr.com/ 上测试了我的正则表达式,它可以工作,但它在 DialogFlow 上不起作用。
我这里是不是搞错了?

【问题讨论】:

  • 试着用更多的词来描述你的需要。
  • 模式^\<@([A-Z])\w+\> 本身与I wanna go to <@U12A0GF233T> 中的U12A0GF233T 不匹配 试试这样^[^<>]*<@([A-Z]\w+)> regex101.com/r/ps3V7J/1
  • @Thefourthbird 当我为 Python 使用正则表达式模式的 Javascript 时我犯了一个错误(^_^")。但是使用你的模式,当我用 I want to move my home office to <@U12A0GF233T> 测试时(例如)。结果是返回的是office to <@U12A0GF233T>。我将模式更改为^*<@([A-Z]\w+)>,它正在工作。我不知道Python,所以我不确定这个partern是否正确。但你救了我。非常感谢。
  • 也许你只是想要<@([A-Z]\w*)>?
  • @Thefourthbird 不,当我将 ^.*<@([A-Z]\w+)> 添加到 DialogFlow 实体值时,它没有正确检测到短语 <@U12A0GF233T>。当我使用^*<@([A-Z]\w+)> 并且它检测正确时(至少目前在我尝试过的情况下)。哈哈。我不知道为什么。

标签: regex entity dialogflow-es message detect


【解决方案1】:

基本上,Google Dialogflow 将RE2 C++ 库用于与entity 关联的正则表达式,这可能会稍微改变一般的正则表达式方言,只需遵循此RE2 Syntax 页面即可。

在解释的用例中,我已经完成了正则表达式模式调整:

^*<@([A-Z]\w+)>

或者

\<@([A-Z]\w+)>

【讨论】:

    猜你喜欢
    • 2020-02-21
    • 1970-01-01
    • 1970-01-01
    • 2023-01-26
    • 2013-10-13
    • 1970-01-01
    • 1970-01-01
    • 2012-01-02
    • 1970-01-01
    相关资源
    最近更新 更多