gpt4 book ai didi

java - 根据记录集验证文件

转载 作者:行者123 更新时间:2023-11-29 04:37:16 26 4
gpt4 key购买 nike

我有一个包含多组记录的文件。

示例中的多组记录如下所示

X---Header
K
L
M
Z---Footer
X---Header
K
L
M
Z---Footer

K、L、M为信息记录。

当我在文件中只有一组指令时,我会像这样验证它们

先读取记录条数,再一条一条验证。

if recordsno = 1

input.record.match(^[X].*$)

else if recordno = 2

input.record.match(^[Z].*$)

else

input.record.match(^[K|L|M].*$)

如果有任何记录不匹配,我将拒绝该记录。它在单组指令下运行良好。我正在使用 java 在 etl 中执行此 Activity 。

但现在我期待多组说明。所以在这种情况下如何验证这一点。请提出任何建议,以便我可以在现有代码中添加更多代码来验证这种多组指令。

强制性的是..页眉应该从 X 开始,页脚从 Z 开始,在记录之间只用 K 或 L 或 M。所以如果有任何记录不符合这种格式,我将拒绝该文件。

有什么建议吗?

谢谢

最佳答案

根据您在问题中提出的一般要求,我认为您应该使用本网站上提到的 Java 库之一 JsaPar - library links而不是尝试使用正则表达式来解决这个问题。

有一些真正出色的 Java 库可以满足您的需求。

这可能不是您问题的直接答案,但那是因为这个问题(对我而言)在实际需要解决/完成的问题上过于宽泛。

看看BeanIO、FlatWorm、JsaPar、EasyBatch、JFFP等的文档就可以了。

为了获得对您的问题的更多 react (或更好的 react ),请尝试详细描述记录包含的内容以及如何检测它们(是什么使它们独一无二?)。您可以通过指定您希望(或必须根据要求)解决问题的方式来改进您的问题:是否允许使用外部库?是否必须仅使用正则表达式?是否有任何速度/内存使用要求等。

我认为用户 Wiktor Stribiżew 给出的答案是正确的:“我所能分享的只是一个提示,当你有这么多需求时,你不应该依赖单一的正则表达式。”。我只能承认这一点。

祝你好运!

关于java - 根据记录集验证文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40819371/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com