java - 使用转义引号分割逗号分隔的字符串

标签 java regex split tokenize

我看到有几个类似的问题,但我没有找到满意的答案。我有一个逗号分隔的文件,其中每行看起来像这样:

4477,52544,,,P,S,    ,,SUSAN JONES,9534 Black Bear Dr,,"CITY, NV 89506",9534 BLACK BEAR DR,,CITY,NV,89506,2008,,,,  ,     ,    , ,,1

出现的问题是当 token 转义带有引号“CITY, NV 89506”的逗号时

我需要一个处理转义 token 并包含每个 token (甚至是空 token )的结果。

最佳答案

考虑一个合适的 CSV 解析器,例如 opencsv 。它将经过严格测试(与新的本土解决方案不同)并处理边缘条件,例如您所描述的条件(以及许多您没有考虑过的情况)。

在下载中,有一个示例文件夹,其中包含“addresses.csv”,其中包含以下行:

Jim Sample,"3 Sample Street, Sampleville, Australia. 2615",jim@sample.com

在同一目录中,文件 AddressExample.java 解析此文件,并且与您的问题高度相关。

关于java - 使用转义引号分割逗号分隔的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12737399/

相关文章:

java - 如何仅在分隔符之间提取数字?

java - 查找字符串中多次出现的单词并存储各自的起始索引

javascript - 如何将字符串分成组?

java - 卡夫卡 : Cant Create Multiple Stream Consumers

java - 当有多个子节点时如何一一获取XPath路径?

java - 如何用 JUnit 测试来测试这个类?

regex - 如何使用正则表达式匹配包含多个 url 的行中的最后一个 url?

regex - 在 PowerShell 中组合两个正则表达式

sql - 将逗号分隔的列数据拆分为其他列

java - Rx java 内存不足