【发布时间】:2011-02-11 20:07:53
【问题描述】:
我将HTML代码转换为纯文本。但是有很多额外的返回和空格。如何删除它们?
【问题讨论】:
-
这听起来很明显,但是如果替换空格和 CRLF 不足以美化您的 HTML,您可以考虑使用HTML formatter
我将HTML代码转换为纯文本。但是有很多额外的返回和空格。如何删除它们?
【问题讨论】:
string new_string = Regex.Replace(orig_string, @"\s", "") 将删除所有空格
string new_string = Regex.Replace(orig_string, @"\s+", " ") 只会将多个空格合并为一个
【讨论】:
\s 是空格、换行符、制表符和换页符(以及某些实现中的一些其他空格)的简写,因此它将删除这些返回并将它们转换为单个空格。
我假设你想要
如果是正确的,那么你可以使用
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");
【讨论】:
\n \n \n \n \n \n \n \n \n \n返回与空格混合
\n\n \n\n \n\n 或 \n \n \n \n 或 \n \n\n \n \n\n \n \n\n 之类的东西怎么办?
\n\n \n\n \n\n \n 到“\n”之类的空格返回。ps:之间有多个空格"\n"s
\n \n \n \n \n \n \n \n \n \n。
我为此使用了很多算法。每个循环都很好,但这是清晰而绝对的。
//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() 方法省略它们。
【讨论】:
Trim 可能有用,但不能完成全部工作。