如何通过正则表达式删除字符串中的额外返回和空格?
我将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()方法省略它们。