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