2010-12-15 32 views
7

從平面文件導入數據時,我注意到一些行嵌入了非空格(Hex:A0)。從基於十六進制值的字符串中刪除特定字符

我想刪除這些,但標準的string.replace似乎並沒有工作,並已考慮使用正則表達式來替換字符串,但不知道正則表達式將搜索將其刪除。

而不是將整個字符串轉換爲十六進制並檢查,有沒有更好的方法?

+2

替換應該處理,你能顯示代碼(失敗)? – 2010-12-15 21:44:40

回答

19

爲什麼不能string.Replace工作?

stringVar.Replace((char)0xA0, ' '); 
+0

以上更改爲空白,對不對?你如何徹底刪除它?我嘗試過「」和「',但顯然如果你在替換的左邊有一個字符,你必須在右側有一個字符。 – NealWalters 2012-05-18 16:58:55

+0

@NealWaters:你需要使用'null'作爲第二個參數的'Replace'的字符串版本。 – 2012-05-28 09:44:04

12
Regex.Replace(input, "\xA0", String.Empty); 

這應該做到這一點。

3

這會爲你工作嗎?

var myNewString = myCurrentString.Replace("\n", string.Empty); 
myNewString = myNewString.Replace("\r", string.Empty); 

\n」 是ASCII換行符, 「\r」 的迴歸。

+1

這些都不是非破壞性的空格字符A0(160)。 – KeithS 2010-12-15 21:54:16

+0

是的,你是對的,我誤解了這個問題。抱歉。我應該刪除我的答案還是把它留在這裏(我是新來的...)? – 2010-12-15 21:55:59

+0

你應該改正你的答案。這是最好的事情。 – jlafay 2010-12-15 22:03:37

5

string.Replace does not work。不使用正則表達式:

stringVar = stringVar.Replace("\xA0", string.Empty); 
相關問題