现有字符串如下所示"a;b;c;d";e;f,我想用java String的split放发将该字符串分割为"a;b;c;d"、e、f这样的形式。也就是说忽略双引号之间的分号,请问正则应该怎么写?
2条回答
关注 String test = "F;SD;\"a;b;c;d\";\"a;6Y;d\";e;f"; List<String> stringList = new ArrayList<String>(); Pattern p = Pattern.compile("\".*?\""); Matcher m = p.matcher(test); StringBuffer sb = new StringBuffer(); while(m.find()){ stringList.add(m.group()); m.appendReplacement(sb, ""); } m.appendTail(sb); String[] ss = sb.toString().split(";"); for (int i = 0; i < ss.length; i++) { if(!ss[i].equals("")){ stringList.add(ss[i]); } } for (int i = 0; i < stringList.size(); i++) { System.out.println(stringList.get(i)); }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 Power query添加列问题
- ¥50 Kubernetes&Fission&Eleasticsearch
- ¥15 有没有帮写代码做实验仿真的
- ¥15 報錯:Person is not mapped,如何解決?
- ¥30 vmware exsi重置后登不上
- ¥15 易盾点选的cb参数怎么解啊
- ¥15 MATLAB运行显示错误,如何解决?
- ¥15 c++头文件不能识别CDialog
- ¥15 Excel发现不可读取的内容
- ¥15 关于#stm32#的问题:CANOpen的PDO同步传输问题