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中存在一个空的字符串
(当然,这很容易被忽略)