Java 正则表达式,用于拆分带有分隔符的特殊字符串

Java 正则表达式,用于拆分带有分隔符的特殊字符串,java,regex,Java,Regex,请帮助我编写特殊情况下的正则表达式 input: "abc","def","gh,k","pot" output: abc def gh,k pot String[]vals=String.split(“\”|,”)不工作 val[2]需要是:gh,f ","|" 按此拆分。请参阅演示。替换为\n。删除空元素 或 您只需使用“([^”]+)”即可获取匹配项。请参阅演示 不幸的是,对于包含引号字符串(本身包含逗号)的逗号分隔文件,一个完全通用的

请帮助我编写特殊情况下的正则表达式

input: "abc","def","gh,k","pot"
output: abc
        def
        gh,k
        pot
String[]vals=String.split(“\”|,”)
不工作

val[2]
需要是:
gh,f

","|"
按此拆分。请参阅演示。替换为
\n
。删除空元素

您只需使用
“([^”]+)”
即可获取匹配项。请参阅演示


不幸的是,对于包含引号字符串(本身包含逗号)的逗号分隔文件,一个完全通用的正则表达式并不简单

我所知道的最好的是

,(?=(?:[^\”“]*\[^\”“]*\)*(?![^\”“]*\)

如果您在Java中将其作为文本字符串引用,请不要忘记用
\\
转义
\

我尝试了这个

"((?:(?!").)*)"\,?
与第1组进行Grap


请参见演示:

如果我没有弄错,您需要将此
“abc”、“def”、“gh、k”、“pot”
字符串拆分为:
abc
def
gh,k
pot
? 因此,请使用:

String str = "\"abc\",\"def\",\"gh,k\",\"pot\"";
String[] values = str.split("\",\"|\""); 
System.out.println(Arrays.toString(values));
尽管在Begging中存在一个空的
字符串
(当然,这很容易被忽略)