C# 正则表达式-用制表符替换多个空格

C# 正则表达式-用制表符替换多个空格,c#,regex,C#,Regex,我正在使用下面的代码示例,我要做的是用1\t替换所有多个空格 所以 返回 "I am\thaving fun\tworking\ton\tRegex" 当前代码: RegexOptions options = RegexOptions.None; Regex regex = new Regex(@"[ ]{2,}", options); tempo = regex.Replace(tempo, @" "); 谢谢 只要这样做: resultString = Regex.Repl

我正在使用下面的代码示例,我要做的是用1\t替换所有多个空格

所以

返回

"I am\thaving fun\tworking\ton\tRegex"  
当前代码:

RegexOptions options = RegexOptions.None;
Regex regex = new Regex(@"[ ]{2,}", options);     
tempo = regex.Replace(tempo, @" ");
谢谢

只要这样做:

resultString = Regex.Replace(subjectString, " {2,}", @"\t");

您在尝试时忘记了您的
\t

在示例中,您将用一行中的一个空格替换多个空格:

tempo = regex.Replace(tempo, @" ");
您需要的是替换为制表符,该制表符写为
\t

tempo = regex.Replace(tempo, "\t");

请注意,在调用
Replace
时,我从字符串中删除了
@
字符,否则
@“\t”
将被解释为“字符串反斜杠t”,而不是制表符。

这是一件奇怪的事情;制表符通常会扩展到不同数量的空格,具体取决于制表符在行中的显示位置。顺便说一句,你应该编辑你的问题,让它真正提出一个问题。那么问题是什么呢?除了在您的示例中,字符串中似乎只显示一个空格之外?可能是因为空间修正问题和regex.Replace(tempo,@“);应该是regex.Replace(tempo,“\t”);FailedDev和madd0提出的答案几乎相同,但一个@-引用了\t,另一个没有。两种方法都试过了。madd0是正确的:不要@-引用\t。ie
Regex.Replace(subjectString,{2,},“\t”)
tempo = regex.Replace(tempo, "\t");