【发布时间】:2012-01-17 06:55:22
【问题描述】:
我在 Java 中使用正则表达式时遇到了很多空格问题。任务是拆分逗号分隔的输入字符串,如,
J,Project report,"F, G, I",1
分成包含以下内容的单独字符串:
J
项目报告
F、G、I
1
如果这是有道理的。我正在使用扫描仪来拆分字符串。我正在使用的正则表达式(和代码)是。
while (t.hasNext("([a-zA-Z0-9]| )*(\".+\")*,?")) {
System.out.println("t.next is : " + t.next());
...其中 t 是输入字符串的扫描器,如上所述。但这似乎永远不会求助于 true,因为没有打印任何内容。我最接近工作的方法就是简单地使用“。*”作为我的正则表达式,但这将在空格处分隔,我只需要在逗号处分隔,而不是在引号内。有人可以帮忙吗?谢谢。
【问题讨论】:
-
必须使用正则表达式吗?它们可能不是这里工作的最佳工具
-
不,这不是必需的,但简单地使用“,”作为分隔符是行不通的,因为 F、G 和 I 将在它们成为一个字符串的一部分时被分隔。诚然,这可能更简单,但我不知道如何处理它。