首页 > 解决方案 > 捕获任意组项目

问题描述

我有一个逗号分隔的键 + 值,如下所示:

Field1=33,Field2=44

这些字段可以是任意顺序,因此也可以是这样的:

Field2=44,Field1=33

我想只使用一个忽略字段顺序的正则表达式来获取键值字典。

最简单的解决方案如下:

Field1=(?<Field1>\d*),Field2=(?<Field2>\d*)

但是,这不适用于第二种情况,即 Field2 先于 Field1。

有没有办法在不使用额外的代码工作的情况下实现这一点?

我不认为正则表达式支持这一点,但我是一个非常基本的正则表达式用户。我正在使用 .net 正则表达式风格。

标签: regex

解决方案


如果您的语言/工具理解前瞻,您可以使用:

(?=.*(Field1=(?<field1>\d+)))(?=.*(Field2=(?<field2>\d+)))

演示


推荐阅读