我问这个问题早些时候被关闭,因为它是一个重复的,这点我接受,实际上发现的问题Java: splitting a comma-separated string but ignoring commas in quotes的答案,所以拜谁发布它。拆分上逗号的字符串不包含双引号内与一捻
但我自从遇到的另一个问题。显然,我需要做的是在零或偶数个双引号内使用“,”作为我的分隔符,但也忽略括号中包含的任何“,”。
所以下面:
"Thanks,", "in advance,", "for("the", "help")"
会为记号化:
- 感谢,提前
- ,
- 为(下称 “”, “帮助”)
我不知道是否有无论如何要修改当前的正则表达式我正在使用允许这一点,但任何指导将不胜感激。
line.split(",(?=([^\"]*\"[^\"]*\")*[^\"]*$)");
期望的结果是什么? – DOK 2010-02-22 18:03:29
你应该使用一个真正的CSV解析器来处理这个混乱。不**每个**解析问题最好用正则表达式处理。 – 2010-02-22 18:04:54
@Joachim,你知道多少个CSV解析器能够以他想要的方式在引号内处理括号内的引号? – 2010-02-22 18:25:45