2011-09-16 187 views
0

我想从数据库中读取数据后生成一个CSV文件。现在单个数据可以包含逗号,单引号和双引号。正则表达式来处理逗号,双引号,引号

请指教我如何在正则表达式的帮助下处理这种情况。

+0

可能的[csv api for java]重复(http://stackoverflow.com/questions/101100/csv-api-for-java) – Mat

+0

如果其中一个答案解决了您的问题,请点击接受在复选标记上。 – andronikus

回答

2

您可以为CSV文件使用不同的分隔符吗?管道(|)也许?

1

那么,逗号不是一个真正的问题,因为它们用双引号括起来表示一个字符串。相同的单引号。你唯一需要做的就是转义双引号。下面是一个例子:

乔说:“现在回家,不要迟到,我会陷入'大'麻烦。

将成为

“乔说,‘’回家了,不要迟到。我在‘大’麻烦了。”“”

+0

反斜杠不用于转义CSV数据中的字符。 – Guffa

+0

CSV是不是一个真正的标准和解释与程序,唉各不相同,但一般来说,双引号加倍进行转义。 – PhiLho

+0

你说得对。相反,你加倍双引号。我会解决它。 – mamboking

2

最简单的是在所有数据周围加引号,然后在数据中可以有逗号,引号(双引号)和换行符。

只需用双引号替换数据中的引号即可。您不需要正则表达式,只需使用常规字符串替换即可。

撇号(单引号)并没有在CSV格式的任何特殊含义,所以他们都不是问题。

0

编写功能CSV解析器不是一个简单的任务,即使数据格式是如此简单。相反,考虑为此使用一个库。我已经使用了CSVReader library,这很容易。该网站还包含代码示例。

相关问题