2017-08-30 72 views
0

背景無法從字符串

還有在要求用戶輸入將被存儲在一個數據庫信息的應用程序中刪除一個特殊字符。然後,我有一個應用程序每5分鐘運行一次,並獲取用戶使用以前的應用程序輸入的信息。然後,我的應用程序從數據庫中獲取所有信息,然後繼續創建給定的文檔,然後將其放置在服務器中供用戶使用。然而,用戶開始遇到特定文檔的問題,其中某些功能沒有正確執行。所以我將這個問題確定爲用戶在輸入應用程序中輸入的字符串,在標題欄中他們有「Jame's Bond Story」,所以我的應用程序創建了文檔,並且沒有任何問題。所以在調試後我發現了以下問題。

問題

不知道具體的用戶如何做他做了什麼,但單引號'是不是一個真正的單引號,但一些其他類型的怪異性格的異常。我通過運行下面的代碼來證明我是否可以刪除它。

string cleanTitle = BookRec.TitleName.Replace("'",""); 

然而,這並沒有爲我工作。然後我把字符串分解成一個字符數組,而不是讓字符變成奇怪的數字。所以我開始使用這個正則表達式來清理每個字符,只允許數字和字母。

string cleanTitle = Regex.Replace(BookRec.TitleName, "[^\\w\\. _]", ""); 

現在這已成爲一個問題,因爲用戶希望標題包含特殊以下字符() _ , - .

我正在尋找一種方式來過濾掉任何字符,包括我遇到了這個星期的類型只允許用戶同意的6個字符。我可以用下面的正則表達式公式BU我得到一個空字符串。

Regex fomrula = new Regex(@"^[a-zA-Z0-9_\[])(,\-.'"); 

但是,當我替換標題時,我得到一個空字符串。我不是正則表達式的忠實粉絲,我也開放了一個子字符串方法來解決這個問題。

附帶信息

我不能夠訪問插入信息給定的數據庫的應用程序。我只能從數據庫中讀取數據,然後執行操作。

+2

看到這個問題posted 20 minutes ago https://stackoverflow.com/questions/45969065/passing-a-string-containing-special-characters-to-database –

+0

@LB這些問題**不應該被關閉** 。它們並不完全重複,事實上幾乎完全不相關。 – maccettura

+0

@maccettura我認爲這樣,你總是可以投票重新打開它 –

回答

2

你可能想嘗試這樣的:

string cleanTitle = Regex.Replace(BookRec.TitleName, @"[^\u0000-\u007F]+", ""); 

這將取代任何Unicode字符不是這些值之間。我不確定那些是否會引起你的問題,但希望它能給你提供一個正確方向的暗示。