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

问题描述

我正在尝试使用Bot Framework Composer构建Microsoft Teams机器人。我想做的是与ServiceNow创建集成。目的是,如果有人将记录号(例如REQ0123456,INC0123456,KB0123456)发布到群组中或直接聊天(与漫游器),则漫游器将查找该记录并提供卡片或记录的简短摘要聊天。

为避免为每种记录类型创建完全不同的意图,我希望使用RegEx将匹配项收集到2个捕获组中。一个用于tbl_code,另一个用于number

以下是用户输入的条目:

> 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,但我认为这不是我想要做的最好的方法。这将返回整个正则表达式匹配项。

我对这个框架还很陌生,所以请保持谨慎。 :)让我知道是否还有更多信息可以提供。

谢谢。

最好的问候, 乔什

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)