2012-08-24 41 views
0

我想寫一個正則表達式模式來修改我的datagridview的標題。 我需要刪除每個字符串中的以下字符: space [ ] * # ? / \ @ ( ) 。 「」 '' 我非常困惑,我需要你的幫助來定義C#中正則表達式的模式。這是我的示例代碼:如何爲以下字符串編寫正則表達式模式?

DataTable d_new = d; 
for (int i = 0; i < d.Columns.Count; i++) 
{ 
    string t = d.Columns[i].Caption; 
    string regex = "\\s+"; // this needs to Be expanded 
    string t_new = Regex.Replace(t, regex, "_"); 
    d.Columns[i].Caption = t_new; 
} 
+0

你真的* *需要一個正則表達式?你爲什麼不簡單使用'Remove'方法? –

+1

* [你有什麼嘗試?](http://mattgemmell.com/2008/12/08/what-have-you-tried/)* – zzzzBov

+0

@Andre,抱歉,我不知道替換方法,我搜索互聯網,發現正則表達式這就是爲什麼我使用它,我知道它可能沒有效率。 – Amir

回答

3
var invalidChars = new HashSet<char>(@"[]*#?/\@()"); 
var output = new string(input.Where(c => !invalidChars.Contains(c)).ToArray()); 
+0

這一個工程,感謝您的幫助 – Amir

1

這將匹配你想要的,只是一個空字符串或者你想要的更換。

[ \[\]*#?/\\@()."'] 

但在這種情況下,正則表達式是有點大材小用,你可以只使用Remove

+0

我想你的意思是'替換' –

1

這應該做的伎倆:

string regex = "[\[\]*#?\/\\@()."']"; 
相關問題