使用特殊字符删除字符串上的额外空格

时间:2013-08-07 18:13:11

标签: c# regex

我无法从以下内容中删除多余的空格:

abc\ae.exe        a 1 b 2%%  ACU > log.txt

我使用以下代码删除多余的空格(我在S.O上找到):

Regex.Replace(cmdLine, @"^\s*$\n", string.Empty, RegexOptions.Multiline).TrimEnd();

以上代码删除了abc \ ae.exe&之间的额外空格。罚款;但是,它并没有从2 %% ACU中移除额外的空白区域(中间有两个空格)。

我对reg表达式不是很熟悉,但我认为这与%符号可能是一个注册关键词的事实有关。

非常感谢任何指导。

2 个答案:

答案 0 :(得分:5)

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

将用一个空格替换多个空格

+表示match the character one or more times

这是Regex Guide For C#

答案 1 :(得分:0)

如果您想要选择特定的空白字符而不是\s中包含的所有字符(相当于[ \f\n\r\t\v]

,您也可以使用Character Groups完成此操作
string test = @"abc\ae.exe           a 1 b 2%%  ACU > log.txt";
// Replace one more more space characters with a single space
// Add other whitespace characters inside [ ] (ex: \t)
string no_space2 = Regex.Replace(test,@"[ ]+"," ");