C# 仅当字符串超过一定大小时,才从字符串中删除空白
我有这个字符串:C# 仅当字符串超过一定大小时,才从字符串中删除空白,c#,C#,我有这个字符串: Corso Vittorio Emanuele II 9 20122 Milano 此字符串最初采用以下格式: Corso Vittorio Emanuele II 9 20122 Milano 因此,我使用正则表达式删除了换行符: var stringWithoutNewLine = Regex.Replace(text, "\t|\n|\r", string.Empty).Trim(); 现在,我尝试通过以下
Corso Vittorio Emanuele II 9 20122 Milano
此字符串最初采用以下格式:
Corso Vittorio Emanuele II 9
20122
Milano
因此,我使用正则表达式删除了换行符
:
var stringWithoutNewLine = Regex.Replace(text, "\t|\n|\r", string.Empty).Trim();
现在,我尝试通过以下方式删除空白:
return Regex.Replace(stringWithoutNewLine, @"\s+", string.Empty);
但它没有按预期工作,因为我得到了这个结果:
CorsoVittorioEmanueleII920122Milano
何时应:
Corso Vittorio Emanuele II 9 20122 Milano
将正则表达式从
@“\s+”
更改为@“\s{2,}”
。它将删除从2到(某种程度上)无限数重复出现的空白。然后,如Juharr所述,用空格替换:
Regex.Replace(yourString, @"\s{2,}", " ");
将正则表达式从
@“\s+”
更改为@“\s{2,}”
。它将删除从2到(某种程度上)无限数重复出现的空白。然后,如Juharr所述,用空格替换:
Regex.Replace(yourString, @"\s{2,}", " ");
试试这个
Console.WriteLine(Regex.Replace(stringWithoutNewLine, @"\s+", " "));
试试这个
Console.WriteLine(Regex.Replace(stringWithoutNewLine, @"\s+", " "));
你真的需要使用正则表达式吗?为什么不像这样
var splitString = text.Split(new char[0],StringSplitOptions.RemoveEmptyEntries);
var stringWithoutExtraSpaces = string.Join(" ",splitString);
你真的需要使用正则表达式吗?为什么不像这样
var splitString = text.Split(new char[0],StringSplitOptions.RemoveEmptyEntries);
var stringWithoutExtraSpaces = string.Join(" ",splitString);
要澄清的是,您是否仅尝试删除字符串中的空格+换行符?请将其替换为一个空格,而不是空字符串。您正在将所有空格替换为
字符串。空的,我预期会出现此结果。。。将string.Empty
替换为”
:p只需使用原始正则表达式并替换为一个空格“”,而不是空字符串。要明确的是,您只是试图删除字符串中的空格+换行符吗?将其替换为一个空格,而不是空字符串。您正在将所有空格替换为string.Empty
,我期待这个结果。。。用替换string.Empty
“
:p只需使用原始正则表达式并替换为一个空格”,而不是空字符串。感谢您的提示!这不是问题所在。问题是所有的空格都被一个空字符串代替,而不是一个空格。@juharr我也尝试了用“
”代替string.empty
,情况是一样的。如果你用Regex.Replace(“这有空格,@”\s{2,}),string.empty)
你会得到“thishassspaces”。您必须将其替换为“”才能获得“this has spaces”,并且它也可以与\s+
一起使用。谢谢您的提示!这不是问题所在。问题是所有的空格都被一个空字符串代替,而不是一个空格。@juharr我也尝试了用“
”代替string.empty
,情况是一样的。如果你用Regex.Replace(“这有空格,@”\s{2,}),string.empty)
你会得到“thishassspaces”。您必须用“”替换以获取“this has spaces”,它也可以与\s+
一起使用。您需要检查空字符串(或者splitString
的长度为零)以避免索引自动失效异常。您也可以使用字符串。加入。谢谢您的输入,我没有想到这一点。现在修改我的答案。您需要检查空字符串(或者splitString
的长度为零),以避免出现索引自动失效异常。您也可以使用字符串。加入。谢谢您的输入,我没有想到这一点。现在修改我的答案。