【发布时间】:2014-06-05 22:22:35
【问题描述】:
我有一个条形码,我正试图通过我们的文档成像软件中的内置正则表达式进行解析,我相信该软件位于 .net 中。这些是贷款文件上的条形码,包括由破折号 (-) 分隔的帐号和子帐号。这其中最难的部分是,随着子账号的缩小,账号是补零的那个。下面的一些示例显示了帐户/子帐户编号从位置 11 开始并持续 15 个字符(包括破折号)。我需要两种不同的正则表达式模式(一种匹配破折号之前的帐号,另一种匹配后面的)。所有示例中的前 10 个零实际上是另一个当前未使用的字段。因此,在 - 之前匹配所有内容将在短期内起作用,但如果他们决定开始使用该字段,它将不再起作用。我需要一些方法来解析它,这将使我在破折号上的位置 11-25 分裂。我可以在子帐号上包含破折号,在帐号上包含零,因为我可以在软件中选择“删除所有出现的 __ 字符”。我可以自动删除帐户中的前导零和子帐户中的前导破折号。
0000000000123456789-12345133304302014
帐号=123456789 子=12345
00000000000123456789-1234133304302014
帐户=0123456789 子=1234
000000000000123456789-123133304302014
帐户=00123456789 子=123
0000000000000123456789-12133304302014
帐户=000123456789 子=12
00000000000000123456789-1133304302014
帐户=0000123456789 子=1
编辑:
最终的工作正则表达式语法如下:
帐号 = [1-9].(?=.-)
子账号=(?(?=(............$))*
【问题讨论】:
-
您能否提供您正在使用的语言,以便我们提供包含特定行的完整答案?我问只是因为某些语言使用不同的语法来识别捕获的元素。
-
如果您告诉我们您正在使用什么文档成像软件,并指出其正则表达式引擎的文档,这可能会有所帮助。您得到了一些很好的建议,但要真正帮助我们,我们需要了解有关该平台的更多详细信息。
-
对不起,我不是更清楚。我会看看是否可以找到任何文档,但我还没有在任何地方看到它。该软件通过 Integra Business Systems 提供。此外,上述每个示例中的帐号都是 123456789,子帐号是 - 和 133304302014 之间的数字。结束数字字符串不是静态的。我会更新问题以使其更清楚。
-
我更新了问题,将语言引擎包含为 .Net。