java - 需要 Java 正则表达式 (regexp) 来拆分复杂的 CSV 文件

标签 java regex string csv

我需要拆分一个包含订单的 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/

相关文章:

sql - Postgres : Select the maximum integer substring of a column value

java - 将主类作为 JsonSubTypes 中的类型调用

java - 关于 Java String 美元到美分的转换

java - 登录时在 spring security 中更改用户名

java - 用于匹配 Java 中 Pattern 类中的模式的正则表达式

regex - 在 grails 配置中实现不区分大小写的正则表达式 (?i)

regex - 包含除 '~' 和 ',' 之外的所有键盘字符的正则表达式

c - 解析 C 语言中的 bash 命令输入

java - 如何使用 Java 读取 Winzip 自解压 (exe) zip 文件?

java - Spring Boot 2.2.0 不推荐使用syncBody