我最近遇到了这个问题,不知道如何解决。我知道在String类中,我们有一个split方法,它接受一个正则表达式,并基于正则表达式将给定的字符串拆分为不同的字符串并以字符串数组形式返回。
例如,如果我有,
String s = "A,B,C";
我愿意,
System.out.println(Arrays.toString(s.split(",")));
它将打印[A,B,C]到输出控制台。
现在让我们说我的字符串是
String s = "A,\"\"B\"\",\"\"C\"\",D"; //easier to read version: A,""B"",""C"",D
然后我使用以下正则表达式分割字符串,
String regex = ",|,\"\"|\"\",|\"\",\"\""; // matches , OR ,"" OR "", OR "",""
System.out.println(Arrays.toString(s.split(regex)));
我得到的输出为[A,“” B,“” C,D]。拆分在这里如何进行?以及如何定义我的正则表达式,以便获得[A,B,C,D]作为输出?
注意:我知道我想要实现的目标可以通过其他方式来完成(例如replaceAll方法),但是我只想使用String.split解决此问题,因为我想知道在这种情况下如何使用它
答案 0 :(得分:6)
始终从最大到最小订购替代品:
String regex = "\"\",\"\"|,\"\"|\"\",|,";
答案 1 :(得分:2)