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

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

我假设你想要

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

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

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"); 

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

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

我使用了很多算法。 每个循环都很好,但这是明确和绝对的。

 //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. 

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