gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 17:18:35 24 4
gpt4 key购买 nike

我什至在谷歌的第3页上搜索了这个问题,但似乎没有合适的解决方案。

以下字符串

"zhg,wimö,'astor wohnideen','multistore 2002',yonza,'asdf, saflk','marc o\'polo'"

在 Java 中应该用逗号分隔。引号可以是双引号或单引号。我尝试了以下正则表达式

,(?=([^\"']*[\"'][^\"']*[\"'])*[^\"']*$)

但是由于“marc o\'polo”处的转义引号,它失败了......

有人可以帮我吗?

试用代码:

String checkString = "zhg,wimö,'astor wohnideen','multistore 2002',yonza,'asdf, saflk','marc \'opolo'";
Pattern COMMA_PATTERN = Pattern.compile(",(?=([^\"']*[\"'][^\"']*[\"'])*[^\"']*$)");
String[] splits = COMMA_PATTERN.split(checkString);
for (String split : splits) {
System.out.println(split);
}

最佳答案

你可以这样做:

List<String> result = new ArrayList<String>();

Pattern p = Pattern.compile("(?>[^,'\"]++|(['\"])(?>[^\"'\\\\]++|\\\\.|(?!\\1)[\"'])*\\1|(?<=,|^)\\s*(?=,|$))+", Pattern.DOTALL);
Matcher m = p.matcher(checkString);

while(m.find()) {
result.add(m.group());
}

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

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com