Botframework 如何在Bot Composer的正则表达式中使用捕获组

Botframework 如何在Bot Composer的正则表达式中使用捕获组,botframework,azure-bot-service,Botframework,Azure Bot Service,我正在尝试使用bot Framework Composer构建Microsoft Team bot。我想做的是创建与ServiceNow的集成。目标是,如果有人将记录号码(例如REQ0123456、INC0123456、KB0123456)发布到群组或直接聊天(使用bot)中,bot将查找该记录,并向聊天室提供一张卡片或记录的简短摘要 为了避免为每种记录类型创建完全不同的意图,我希望使用正则表达式将比赛分为两个捕获组;一个用于tbl\u代码,一个用于编号 以下是用户输入的条目: > add

我正在尝试使用bot Framework Composer构建Microsoft Team bot。我想做的是创建与ServiceNow的集成。目标是,如果有人将记录号码(例如REQ0123456、INC0123456、KB0123456)发布到群组或直接聊天(使用bot)中,bot将查找该记录,并向聊天室提供一张卡片或记录的简短摘要

为了避免为每种记录类型创建完全不同的意图,我希望使用正则表达式将比赛分为两个捕获组;一个用于
tbl\u代码
,一个用于
编号

以下是用户输入的条目:

> add some example phrases to trigger this intent:
- look up {conversation.sn_record.tbl_code=REQ}{conversation.sn_record.number=0123456}
- lookup {conversation.sn_record.tbl_code=REQ}{conversation.sn_record.number=0123456}
- {conversation.sn_record.tbl_code=REQ}{conversation.sn_record.number=0123456}
- lu {conversation.sn_record.tbl_code=REQ}{conversation.sn_record.number=0123456}

> entity definitions:
@ regex  sn_record tbl_code, number = /([a-z]{2,4})([0-9]{7})/mi
我遇到的问题 我不知道如何从单个捕获组中获取值。我希望将它们分开,以便确定需要查询哪个表。我可能只需要在ServiceNow中为整个记录字符串使用整个匹配和搜索API,但我仍然想知道如何使用捕获组值

我目前正在使用
turn.recognized.text
,但我认为这不是我想要做的最好的方法。这将返回整个正则表达式匹配

我对这个框架非常陌生,所以请温柔一点。:)如果我能提供更多信息,请告诉我

谢谢大家

致以最良好的祝愿,
Josh

我使用ToDosSample机器人中的示例就能够解决这个问题

答案是使用命名的捕获组,然后将它们添加到对话框属性中,以便在相应的对话框中使用

以下是我必须做出的修改,以供参考:

    • (?(?[a-z]{2,4})(?[0-9]{7}))
    • dialog.sn\u record=@sn\u record
    • dialog.sn\u tbl\u code=@tbl\u code
    • dialog.sn\u numbers=@numbers
  • 新反应

    • -好的,查找${dialog.sn\u tbl\u code}${dialog.sn\u numbers}