2010-11-20 36 views
0

晚安,統一的正則表達式和DB閱讀/寫作

我目前正在爲基於正則表達式匹配C#人類的語言很簡單的詞彙analiser,和我目前所面臨specifing一個正則表達式的問題可以匹配目標語言中的每個可能的標點符號,而另一個可以匹配每種空格的符號。在Stack Overflow和另一個站點搜索這裏之後,我發現我可以分別使用正則表達式\p{P}作爲標點,使用\p{Z}作爲空格,並且在從文本文件中讀取時它可以工作。問題是,在最終的程序中,需要從SQL數據庫中讀取記錄並使用這個詞法分析器處理它們,我不知道數據庫中記錄的編碼是什麼。這在這種情況下會成爲問題嗎?提到的正則表達式能夠匹配輸入的每個標點符號和空白字符,而不管它們的編碼是什麼?

非常感謝。

+0

你使用的是什麼數據庫? – Amirshk 2010-11-20 18:40:01

+0

SQL Server 2008. – Miguel 2010-11-20 19:24:43

回答

2

.NET Framework將字符串轉換爲數據庫中的Unicode。它是否正確地轉換它們取決於是否有東西告訴它數據庫文本編碼是什麼。但是您的Regex看到的字符串將採用Unicode。

因此,假設數據庫訪問層正確地將文本從數據庫記錄轉換而來,您不必擔心編碼,因爲它始終是Unicode。

+0

非常感謝Mischel。 – Miguel 2010-11-21 17:45:13