我在.NET中使用正则表达式命名组来查找扫描的条形码字符串的一部分。可以在配置中添加RegEx,以便使系统适合于不同的条形码布局。
这很好,但是我遇到一种无法上班的情况:
条形码示例:
17C002101/1803
正则表达式:
(?<LotNumber>.{9})(\/)(?<ExpDate>.{4})
这可以正常工作并提取出来:
批号:17C002101 到期日:1803
现在我还需要提取“ TestCode”,它实际上是“ LotNumber”匹配项的一部分,在这种情况下,最后四位为“ 2101”
有没有办法做到这一点,或者我需要创建多个正则表达式才能使其正常工作?
答案 0 :(得分:2)
如果您的第三个组是另一个组的一部分,并且没有重叠,则只需嵌套这些组即可。
(?<LotNumber>.{5}(?<TestCode>.{4}))(\/)(?<ExpDate>.{4})