【发布时间】:2014-03-27 16:27:55
【问题描述】:
我有一个 CMS 系统,我需要对 HTML 字符串进行一些自动格式化,然后才能将它们提供给客户端。所以在数据库中我可能有一个这样的 HTML 字符串:
> "<h2>Example Header</h2><p>Here is some text about that
> header.</p><h2>Another Header 2</h2></p>Well I got more information
> here.</p>"
我想为每个 H2 标记添加一个 ID 属性,该属性包含 H2 标记中的文本并删除了空格,这将用于锚链接。所以上面的例子会变成:
> "<h2 id="ExampleHeader">Example Header</h2><p>Here is some text about that
> header.</p><h2 id="AnotherHeader2">Another Header 2</h2></p>Well I got more
> information here.</p>"
所以对于字符串中的每个 H2 都来自:
<h2>Header Example Text Right Here</h2>
收件人:
<h2 id="HeaderExampleTextRightHere">Header Example Text Right Here</h2>
空格已删除,但其他文本完全相同。如何使用正则表达式做到这一点?
【问题讨论】:
-
不要使用regex to parse html。 HtmlAgilityPack 非常适合。
-
虽然我很欣赏这种情绪。由于它的遗留性质和其他一些问题,我得到了具体的指示(我不同意)不要在这个项目中使用其他库。
-
仅仅使用正则表达式来解析 HTML 已经够糟糕的了;使用正则表达式解析 HTML并向元素添加 ID 属性会损害您的心理健康。
标签: c# regex asp.net-mvc