在 Blue Prism 中提取正则表达式值(正则表达式匹配)

Extract Regex Values (Regex Match) in Blue Prism

在 Blue Prism 中,我需要识别数据项(文本)的特定元素,以便稍后在我的过程中使用该信息。

文本字符串为:

REKVISITION_NR: 1234567 Dato: 23-07-2018 Rekvirent: ABC, DEF GHI, JKL 60, 8600 MNO Sted: JKL 60, 8600 MNO, Kl.:14:00:00, Bestilt_tid: 60 min Tolkensnavn: PQR STU Koert_fra: VXY , 8600 Silkeborg Vedr.: Z CPR: 123456-7890 Sprog: Arabisk Type: Personlig fremmøde Godkendt: 24-07-2018

如您所见,每个元素都具有这些特征(例如 Kl.:14:00:00Sprog: 阿拉伯语):

我认为我应该使用 Business Object Utility - Strings' 操作 Extract Regex Values,但未能成功匹配任何可以复制到 Named Values 集合中的数据。 但是,我发现 ([A-Z])\w+\.?: ?(\w(\d\-){0,3})+ 在匹配方面给我带来了一些方法。 我希望解决方案将字段名称和值复制到操作生成的命名值集合中。

最后说明:我使用的是 Blue Prism 6.2.1,动作的底层代码基于 VB.net's Regex.Match method

您似乎缺少的是实际的命名组。要捕获 Blue Prism 集合中的值,您需要确保分配正确的组名称,如下所示:

(?<YourGroupName>[A-Z])

这是您可以使用的正则表达式模式,但您需要验证它是否真的适用于所有可能的情况。

(?<Name>\b\S*?):\s(?<Value>.*?)\s*(?=(?:\b\S*?:\s)|$)

您也可以查看和测试here

编辑:但请注意,Blue Prism 用于将多个值提取到集合中的原始代码几乎无法使用,您最好修改它或创建自己的代码。例如,我希望从这样的操作中得到一个集合,其中每一行都是一个模式匹配,每一列都是一个命名组。遗憾的是,这不是默认操作的工作方式。

编辑: