我需要拆分一个包含订单的 CSV 文件(我将其读为字符串)。这个 CSV 的解析规则并不复杂:
每个订单有几行(没有固定数量)
每个订单都以一行开头(发起者):
111;222;dynamic content
每个订单以两行结束(终止符):
111;333;dynamic content
111;333;dynamic content
发起者和终止者必须包含在 split 的结果中。
[编辑] 我不需要使用正则表达式。这只是我的第一个想法。如果更容易的话,我也可以使用另一种解决方案。 [/编辑]
我对正则表达式没有太多经验,所以即使开始也需要很长时间:-( 例如,我尝试了以下操作:
String[] parts = body.split("111;333;.*111;333;");
预期结果:Splitter为111;333;至 111;333; - 请记住,每个订单以两行结束,均以 111;333; 开头因此,在我看来,String[] 应该包含正确的订单数量。然而,数组中只有一个字符串包含所有内容。
我尝试了一些其他正则表达式,但无法得到好的结果。有人可以帮助我并告诉我此拆分的正则表达式吗?谢谢...
最诚挚的问候, 凯
最佳答案
我真的不鼓励您使用正则表达式尝试此任务。有许多 Java 库可以为您执行此操作。这些库经过测试并且非常知名。只需取其中任何一个即可。您将节省时间和精力。我使用opencsv有很好的经验.
关于java - 需要 Java 正则表达式 (regexp) 来拆分复杂的 CSV 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20469147/