2011-02-22 45 views
2

我很可怕的正則表達式的東西。我想在C#中使用正則表達式將任意兩個或更多空格變成非空格。我想單獨留下單個空間。用C中的正則表達式替換兩個或多個空格#

Sample  Sample 

會產生

Sample     Sample 

Sample Sample 

將不會受到影響。

任何想法?

在此先感謝。

回答

7

您可以使用MatchEvaluator作爲替代說法。在C#3.0或更新版本,你可以使用lambda函數:

s = Regex.Replace(s, " {2,}", x => x.Value.Replace(" ", " ")); 
+0

謝謝。我認爲這很簡單。我只是很難與那些東西。 – Chev

+0

非常好的一個! – Marlon

3

它基於零寬度積極向前看和向後看斷言。

MSDN

var rx = new Regex(" (?=)|(?<=) "); 

var str = "ab cde f"; 
var res = rx.Replace(str, "&nbsp;"); 

// res == ab&nbsp;&nbsp;&nbsp;cde f 
+0

@馬克相反,我想它的「簡單」的方式,但我忘了使用MatchEvaluator功能:-) – xanatos

相關問題