我试图将一些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匹配而不是删除??
提前致谢!
答案 0 :(得分:1)
在正则表达式中将\s+
更改为\s*
。 \s+
匹配\s*
匹配零个或多个空格字符的一个或多个空格字符。
\n\s*(?=<)
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();
答案 1 :(得分:0)