【发布时间】:2012-10-26 21:46:46
【问题描述】:
我有一个输入文件,其中每一行都有以下形式的字符串输入值:
" ab cd " , " efgh,ijk.", 4,"lmno"
即,
- 这些词要么用引号引起来,要么没有引号。
- 开始和结束词前后的空格是不允许的。
编辑:3. 输入可以用逗号分隔。(abc,"Hi Mary,Joe",5)
在java中使用.Split(),我需要一个正则表达式来输出这个:
ab cd
efgh,ijk.
4
lmno
我试过了:
[^",]*[\",]
但这不适用于"efgh,ijk."
这里是正则表达式测试的链接:http://regexpal.com/ 我需要一些帮助。请帮忙。 谢谢
【问题讨论】:
-
那是CSV format。这种格式有 plenty of 解析器。你甚至可以很容易地write one自己。不要尝试将正则表达式用于非常规模式,它只会伤害你。
-
5, ebo"eu ooeu" euoe, oeuou应该如何处理? -
@durron597 - 这违反了 OP 关于输入外观的条件。值应该没有引号或被引号包围。
-
@TedHopp 他的程序(如果要投入生产)应该处理非法输入。我的问题的答案可能是“抛出异常”
-
@BalusC - 在我看来就像一个正则表达式。怎么不呢?