首页 > 解决方案 > 使用分隔符拆分并忽略作为数据一部分的分隔符和引号字符

问题描述

我有如下数据

111,222,"33,44,55",666,"77,88","99"

它由引号字符分隔,并放置在引号字符之间以忽略数据内部的分隔符

String input = "111,222,\"33,44,55\",666,\"77,88\",\"99\"";     
String[] splits = input.split(",(?=([^\"]*\"[^\"]*\")*[^\"]*$)");
  for(String s : splits){
        System.out.println(s);
   }

上面的代码工作正常并返回 111, 222, "33,44,55", 666, "77,88","99"

但现在数据本身包含引号字符

111,222,” 33,”44,55 ”,666,”77,88”,”99”

我想回来 111, 222, "33,"44,55", 666, 77,88,99但我得到111,222,"33, "44,55", 666, "77,88","99"

String input = "111,222,\"33,\"44,55\",666,\"77,88\",\"99\"";

如果引号字符是数据的一部分,该模式无法正常工作,有人可以帮我获取数据吗

标签: javaregex

解决方案


推荐阅读