格式化HTML以适合JSON数据C#

时间:2014-11-25 04:13:47

标签: c# regex

我试图将一些HTML格式化为要在Javascript对象中发送到客户端,因此需要删除所有换行符。空白被删除很好,但即使在以下行之后它们仍然是换行符:

string html = "";
html = Razor.Parse(template, viewdata);
html = Regex.Replace(html, @"\n\s+(?=<)", "");

即我的HTML来自:

<h1>My Html</h1>
<div>
  <p>bla bla bla</p>
  <table>
    <!-- table content -->
  </table>
</div>

到此:

<h1>My Html</h1>
<div>
<p>bla bla bla</p>
<table>
<!-- table content -->
</table>
</div>

但我需要这个:

<h1>My Html</h1><div><p>bla bla bla</p><table><!-- table content --></table></div>

如何\ n匹配而不是删除??

提前致谢!

2 个答案:

答案 0 :(得分:1)

在正则表达式中将\s+更改为\s*\s+匹配\s*匹配零个或多个空格字符的一个或多个空格字符。

\n\s*(?=<)

DEMO

string str = @"<h1>My Html</h1>
<div>
<p>bla bla bla</p>
<table>
<!-- table content -->
</table>
</div>";
string result = Regex.Replace(str, @"(?m)\n\s*(?=<)", "");
Console.WriteLine(result);
Console.ReadLine();

IDEONE

答案 1 :(得分:0)

(?<=>)\s+

你可以尝试这个。参见demo。替换empty string

http://regex101.com/r/yP3iB0/24

相关问题