Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/257.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 删除带有特殊字符的字符串上的额外空格_C#_Regex - Fatal编程技术网

C# 删除带有特殊字符的字符串上的额外空格

C# 删除带有特殊字符的字符串上的额外空格,c#,regex,C#,Regex,我无法从以下内容中删除额外的空白: abc\ae.exe a 1 b 2%% ACU > log.txt 我正在使用以下代码删除多余的空格(我在S.O.上找到的): 上述代码正在删除abc\ae.exe和罚款之间的额外空格;但是,它不会从2%%ACU(中间有两个空格)中删除额外的空白 我不太熟悉reg表达式,但我认为这与%符号可能是reg ex关键字这一事实有关 任何指导都将不胜感激 Regex.Replace(cmdLine,@"\s+"," "); 将用单个空间替换

我无法从以下内容中删除额外的空白:

abc\ae.exe        a 1 b 2%%  ACU > log.txt
我正在使用以下代码删除多余的空格(我在S.O.上找到的):

上述代码正在删除abc\ae.exe和罚款之间的额外空格;但是,它不会从2%%ACU(中间有两个空格)中删除额外的空白

我不太熟悉reg表达式,但我认为这与%符号可能是reg ex关键字这一事实有关

任何指导都将不胜感激

Regex.Replace(cmdLine,@"\s+"," ");
将用单个空间替换多个空间

+
表示
将字符匹配一次或多次


这里有一个

如果您想选择特定的空格字符,而不是
\s
中包含的所有空格字符,您也可以使用来完成此操作(相当于
[\f\n\r\t\v]


为什么不将2个空格替换为1个空格?如果包含选项卡,则将
[\t]*
替换为“”。在做spacesHi时,背部的蜱虫似乎有问题。我正在测试一行,你不知道在不同的单词之间会有多少空格。嗨,谢谢你的回复。下面的字符串中的表达式“abc\abc.exe”有问题。如您所见,如果我输入这个表达式中没有空格的字符串,它将返回“abc bc.exe”。它从字符串中删除“\a”。谢谢在我的测试中,它可以很好地处理输入,如果没有空格,就不会替换任何东西。这很奇怪。我无法通过以下测试“ingsda\test\u asdsafd.exe s1 b 2%%cldtg>log.txt”。它返回'ingsda est_asdsafd.exe s1 b 2%%cldtg>log.txt',当我在字符串中添加下划线'\u1'时,问题就出现了。那个正则表达式失败了,让它工作吧。在字符串前面添加“@”以将其转换为文字。谢谢
Regex.Replace(cmdLine,@"\s+"," ");
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,@"[ ]+"," ");