2011-10-19 15 views
1

我有一個小的正則表達式,我在這裏刪除文件中的所有空白並用' - '替換它們。使用正則表達式替換指定的字符.net

我想用' - '替換其他字符,如','和'_'。

如何在我的正則表達式中列出這些字符?

Regex r = new Regex(@"\s+"); 

string fileName = r.Replace(Files.Name, @"-"); 

回答

4
Regex r = new Regex(@"[\s,_-]+"); 

string fileName = r.Replace(Files.Name, @"-"); 

請注意,-必須是第一個,最後還是你需要逃跑。

+0

- 也可以先:) – FailedDev

+0

@FailedDev迂腐但正確。 – xanatos

+0

@FailedDev這是一個帶着':-)'或':-D'的迂腐者......一個pe':-D'可以說 – xanatos

3
Regex r = new Regex(@"(\s|-|,|_)+"); 
+1

完美答案。謝謝! –

+2

呃,但這是一個不太合適的方式來做到這一點。 @xanatos的版本更乾淨,速度更快。 –

+0

我認爲它更具可讀性,因爲您不必擔心訂購或轉義角色,但這是個人偏好。儘管如此,我認爲我們正在進行微觀優化,稱之爲「低效率」。是的,如果你循環數千次,可能會慢幾毫秒。這很重要嗎?如果需要絕對最快的速度,那麼直接替換各個字符的字符串將會更快。 IMO的可讀性通常更重要。 – mikel