如何通过正则表达式删除字符串中的额外返回和空格?

时间:2011-02-11 20:07:53

标签: c# regex return space

我将HTML代码转换为纯文本。但是有很多额外的回报和空格。如何删除它们?

4 个答案:

答案 0 :(得分:17)

string new_string = Regex.Replace(orig_string, @"\s", "")将删除所有空格

string new_string = Regex.Replace(orig_string, @"\s+", " ")只会将多个空格折叠成一个

答案 1 :(得分:15)

我假设你想要

  • 找到两个或多个连续的空格,并用一个空格替换它们,
  • 找到两个或多个连续的换行符,并用一个换行符替换它们。

如果这是正确的,那么你可以使用

resultString = Regex.Replace(subjectString, @"( |\r?\n)\1+", "$1");

这样可以保持原始空格的“类型”不变,并且还可以正确保留Windows行结尾。如果您还想将多个标签“压缩”为一个标签,请使用

resultString = Regex.Replace(subjectString, @"( |\t|\r?\n)\1+", "$1");

要将一串换行符和空格(每个换行符号)压缩到一个换行符中,请使用

resultString = Regex.Replace(subjectString, @"(?:(?:\r?\n)+ +){2,}", @"\n");

答案 2 :(得分:0)

我使用了很多算法。每个循环都很好,但这很清楚,绝对。

//define what you want to remove as char

char tb = (char)9; //Tab char ascii code
spc = (char)32;    //space char ascii code
nwln = (char)10;   //New line char ascii char

yourstring.Replace(tb,"");
yourstring.Replace(spc,"");
yourstring.Replace(nwln,"");

//by defining chars, result was better.

答案 3 :(得分:-2)

您可以使用Trim()删除空格并返回。在HTML中,空格并不重要,因此可以使用System.String类中的Trim()方法省略它们。