2012-01-21 84 views
1

我有一个函数可以替换字符。
用空格替换特殊字符通过正则表达式

public static string Replace(string value) 
{ 
    value = Regex.Replace(value, "[\n\r\t]", " "); 
    return value; 
} 


value="abc\nbcd abcd abcd\ "

如果字符串有任何不必要的空格他们也remove.Means我想造成这样的
value="abcabcdabcd"
帮助更改 Regex Pattern获得欲望result.Thanks很多。

+2

回答太迟,但看看http://regexhero.net/tester/ - 它有一个Silverlight UI,它可以让你进行实验,并且当你快乐时可以给你c#代码。 –

回答

1

如果需要从字符串中删除任意数量的空白字符,也许你正在寻找的东西是这样的:

value = Regex.Replace(value, @"\s+", ""); 

其中\s匹配任何空白字符和+意味着一次或多次。

+0

我尝试it.its给出了一个结果'abc bcd abcd abcd'。我想t0删除所有的空格。它只取代'\ n'而不是其他空白。任何想法? –

+0

应为@“\ s +”或“\\ s +” –

+0

@NeilMoss感谢您的编辑。 – jcollado

1

而是用空格代替你换行,标签等字符,只是没有替换所有空白:

public static string RemoveWhitespace(string value) 
{ 
    return Regex.Replace(value, "\\s", ""); 
} 

\s是匹配所有空格字符特殊字符组。 (反斜杠加倍,因为反斜杠在C#中的字符串有特殊的意义,以及。)下面的MSDN链接包含字符组的确切定义:

+0

@NeilMoss:默认情况下,Regex.Replace替换所有的事件。有可能'\ s'或'\ s +'更高效,但需要测试。 – Heinzi

+0

每天学习一点。谢谢。我很快就会放弃这个评论。 –

+0

@NeilMoss:您也可以这样思考:如果Regex.Replace只是替换第一个匹配项,\ s +将会在abc abc“ abc”上失败,因为它只会删除第一个空格序列。 – Heinzi

0

你可能想尝试指示白色空格的\s。声明Regex.Replace(value, @"\s", ""),输出将是“abcabcdabcd”。