字符串的同一部分中可以有两个命名组吗?

时间:2018-08-10 08:48:56

标签: .net regex

我在.NET中使用正则表达式命名组来查找扫描的条形码字符串的一部分。可以在配置中添加RegEx,以便使系统适合于不同的条形码布局。

这很好,但是我遇到一种无法上班的情况:

条形码示例:

17C002101/1803

正则表达式:

(?<LotNumber>.{9})(\/)(?<ExpDate>.{4})

这可以正常工作并提取出来:

批号:17C002101 到期日:1803

现在我还需要提取“ TestCode”,它实际上是“ LotNumber”匹配项的一部分,在这种情况下,最后四位为“ 2101”

有没有办法做到这一点,或者我需要创建多个正则表达式才能使其正常工作?

1 个答案:

答案 0 :(得分:2)

如果您的第三个组是另一个组的一部分,并且没有重叠,则只需嵌套这些组即可。

(?<LotNumber>.{5}(?<TestCode>.{4}))(\/)(?<ExpDate>.{4})