2011-09-16 235 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,這很容易。該網站還包含代碼示例。

相關問題