.net - 你可以在字符串的同一部分有两个命名组吗?
问题描述
我在 .NET 中使用正则表达式命名组来查找扫描的条形码字符串的一部分。RegEx 可以添加到配置中,以便系统可以适应不同的条形码布局。
这很好用,但我有一种情况无法上班:
条形码示例:
17C002101/1803
正则表达式:
(?<LotNumber>.{9})(\/)(?<ExpDate>.{4})
这工作正常并提取:
批号:17C002101 有效期:1803
现在我还需要提取“TestCode”,这实际上是“LotNumber”匹配的一部分,在这种情况下最后四位数字是“2101”
有没有办法做到这一点,或者我需要创建多个正则表达式才能工作?
解决方案
如果您的第三组是另一个组的一部分并且没有发生重叠,您可以简单地嵌套这些组。
(?<LotNumber>.{5}(?<TestCode>.{4}))(\/)(?<ExpDate>.{4})
推荐阅读
- android - 可绘制的图像未在 imageview 中显示
- c# - 如何在没有使用 .NET 的外部库或工具的情况下以编程方式将带有时间戳的 Authenticode 数字签名应用于 .NET 程序集?
- java - 如何跳出涉及 hasNextLine() 的 while 循环?
- xcode - Xcode 目标的 Git 分支
- android - 无障碍服务无法读取所有屏幕内容
- sql - sql cte 将两个结果合并为一个共同点
- angular - Nativescript Angular 2 - 显示标签的前 40 个字符并在按钮单击时显示更多
- html - 带有变换旋转(90度)的html div元素在chrome中消失
- javascript - 如何设置变量
- bash - 使用 fswatch 和 rsync 自动同步目录时找不到文件