解析字段值有引号和回车的 csv

某 csv 文件的第 3 列是特殊的字符串:两端有引号,被拆分为多行(相当于用回车分隔)。

id,name,description,age

23,Anna,"Self-made

Chef

Shoemaker",23

1,Lily,"One

Way

go

far",24

2,Joe,"Go

aHead",55

3,Bat,"A fried",41

要求:用 Java 整理成规范的二维表。

id

name

description

age

23

Anna

Self-made Chef Shoemaker

23

1

Lily

One Way go far

24

2

Joe

Go aHead

55

3

Bat

A fried

41

编写SPL语句:

=file(""data.csv"").import@tcoq().run(description=replace(description,""\n"","" ""))

函数import将文件解析为二维表,@t表示首行为列名,@c表示csv的分隔符逗号,@o表示处理行中未转义的回车符,@q表示拆掉两端的引号再解析。run可修改并返回修改后的二维表。

Java 集成 SPL 可参考 Java 如何调用 SPL 脚本
问题来源:https://stackoverflow.com/questions/72844595/parsing-double-quote-with-new-line-from-csv-using-jackson-dataformat-csv