Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何通过正则表达式删除字符串中的额外返回和空格?_C#_Regex_Return_Space - Fatal编程技术网

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

C# 如何通过正则表达式删除字符串中的额外返回和空格?,c#,regex,return,space,C#,Regex,Return,Space,我将HTML代码转换为纯文本。但是有许多额外的返回和空格。如何删除它们?您可以使用Trim()删除空格和返回。在HTML中,空格并不重要,因此您可以使用System.String类中的Trim()方法忽略它们。将删除所有空格 string new\u string=Regex.Replace(orig\u string,@“\s+”,“”)将把多个空格折叠成一个 找到两个或多个连续的空格并将其替换为单个空格,然后 找到两个或多个连续的换行符,并用一个换行符替换它们 如果这是正确的,那么你可以

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

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

将删除所有空格


string new\u string=Regex.Replace(orig\u string,@“\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");

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

//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可以删除起始空格和结束空格事实上,只支持前导字符和尾随字符:+1但是,为了提出一个替代方案,也许可以尝试在OP中扩展这个想法,并给出一个无正则表达式的解决方案?您可以删除空格和其他可能要删除的字符。如果您想删除返回,我认为最好的方法是使用“您的Html”。Trim('\n')关键是,它只从字符串的开头和结尾删除返回。OP试图在整个字符串中折叠空格<代码>修剪可能有用,但它不能完成全部工作。谢谢,退货怎么办?我真的很喜欢你删除空格的方式;-)
\s
是空格、换行符、制表符和表单提要(以及某些实现中的一些其他空格)的简写,因此它将删除这些返回并将其转换为单个空格。+1用于维护新行并仅折叠相同类型的重复项Good,但是还有一个问题无法解决。例如
\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
等的内容,该怎么办?@Tim Pietzcker我希望序列空格“sequent返回到”\n”,然后用类似于
\n\n\n\n\n\n\n\n
的空格返回到“\n”。ps:我想我可以通过替换字符串两次来完成。首先,想得到答案。接下来,替换<代码> \\\\\\\\\\\\\\\\\\\\N\N/COD>。听起来很明显,但是如果替换空格和CRLFs没有美化你的HTML,你可以考虑使用一个