替换多个选项卡和c#regex中的单个选项卡

时间:2016-05-10 12:31:39

标签: c# regex

我有以下文字,我想以合理的方式格式化

"\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\tEIMC\\t\n\t\t\t\t\t\t<!--<td valign=\"top\"><span class=\"HEAD\">EIMC<br>\\t</span></td>-->\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\n\t\t\n\t\t\tSavannah\t\t\t\t/ United States of America (UTC-5)\n\t\t\n\n\t\t\n\t\t\t&nbsp;\n\t\t\n\n\t\t\n\t\t\t\n645 Indian Street\t\t\t\t\t\t\t\t\t\t\t\t Savannah, GA 31401\t\t\t\tP.O. Box 1492 101-1001\t\t\t\t\\tSavannah, GA 31402\t\t\t\tUnited States of America\t\t\t\t\t\t\t\tPhone: +1 912 2342340\t\t\t\t\t\t\t\tFax: +1 912 2310060\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tclwsurvey@aol.com\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\tMr. Williams, Charles \t\t\t\t\n\t\t\t\tPrv. Phone: +1 912 2348458\t\t\t\tMobile: +1 912 6568884\t\t\t\t \n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\n\t\t\t\t\n\n\t\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\t&nbsp;&nbsp;\n\t\t\n\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\n\n\t\t\n\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\n\t\t<!--printview-->\n\n\t\t\n\t\t\t\t\t\t\n\t\t\n\t\t<!--printviewAnfang-->\n\t\t\n\t\t\t\n\t\t\t\tMAP VIEW&nbsp;&nbsp;\t\t\t\tPRINT VIEW\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\t--------------------------------------------------------------------------------\n\t\t\t\n\t\t\n\t\t<!--printviewEnde-->\n\t\t"

我尝试在C#中使用以下正则表达式。

var reg1 = Regex.Replace(node.InnerText, @"\t|\n|,|<!--(.*?)-->|(&nbsp.), " ");

var reg2 = Regex.Replace(node.InnerHtml, @"/\t+/|/\n+/|", "*");

问题是多个\ t只是被空格替换,我想用一个空的空格替换大量的\ t,最终目标是将整个东西导出到csv,同时具有一定的可读性。

2 个答案:

答案 0 :(得分:2)

你可以说:

result = Regex.Replace(node.InnerText, @"\t{2,}", @"\t");

这会将多个标签替换为一个标签。

答案 1 :(得分:2)

您可以尝试:

Regex.Replace(node.InnerText, @"(\\t|\\n|&nbsp;)+", "");

参见 Live demo