我们如何在Spring Batch中实现模式匹配,我正在使用org.springframework.batch.item.file.mapping.PatternMatchingCompositeLineMapper
我知道我只能使用?或*在这里创建我的模式。
我的要求如下: 我有一个固定长度的记录文件,在每个记录中我有第35和第36位的两个字段给出记录类型 例如下面" 05"是记录类型,位于第35和第36位,记录总长度为400。
0000001131444444444444445589868444050MarketsABNAKKAAAAKKKA05568551456 ...........
我试着编写正则表达式,但它不起作用,我知道只有两个特殊字符可以使用*和?
在这种情况下,我只能这样写 ?????????????????????????????????? 05 ????????????? .. ................
但它似乎不是一个好的解决方案。
请建议我如何编写此解决方案,非常感谢您提前帮助
答案 0 :(得分:0)
PatternMatchingCompositeLineMapper
使用org.springframework.batch.support.PatternMatcher
的实例进行匹配。重要的是要注意PatternMatcher
不使用真正的正则表达式。它使用更接近ant模式的东西(代码实际上是从Spring Core中的AntPathMatcher
中解除的。)
话虽如此,您有三种选择:
LineMapper
实现,该实现使用正则表达式进行映射。对于记录,如果您选择选项2,那么回馈它将会受到赞赏!