我的程序从文件中读取一行。此行包含以逗号分隔的文本,例如:
123,test,444,"don't split, this",more test,1
我希望拆分的结果是这样的:
123
test
444
"don't split, this"
more test
1
如果我使用 String.split(",")
,我会得到这个:
123
test
444
"don't split
this"
more test
1
换句话说:子字符串中的逗号 "don't split, this"
不是分隔符。如何处理?
原文由 Jakob Mathiasen 发布,翻译遵循 CC BY-SA 4.0 许可协议
你可以试试这个正则表达式:
这会将字符串拆分为
,
后跟偶数个双引号。换句话说,它在双引号外用逗号分隔。如果您的字符串中有平衡引号,这将起作用。解释:
您甚至可以在您的代码中使用
(?x)
修饰符和您的正则表达式来键入这样的内容。修饰符会忽略正则表达式中的任何空格,因此更容易阅读分成多行的正则表达式,如下所示: