13

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

4

4 回答 4

18

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

string new_string = Regex.Replace(orig_string, @"\s+", " ")只会将多个空格合并为一个

于 2011-02-11T20:10:30.223 回答
16

我假设你想

  • 找到两个或多个连续空格并将它们替换为单个空格,并且
  • 找到两个或多个连续的换行符并将它们替换为单个换行符。

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

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");
于 2011-02-11T21:04:02.033 回答
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.
于 2013-05-22T16:01:57.450 回答
-2

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

于 2011-02-11T20:10:05.873 回答