【发布时间】:2010-11-17 05:44:34
【问题描述】:
我有一个用户通过富文本编辑器输入的 HTML 内容,因此它几乎可以是任何内容(除了那些不应该在 body 标签之外的内容,不用担心“head”或 doctype 等)。 此内容的示例:
<h1>Header 1</h1>
<p>Some text here</p><p>Some more text here</p>
<div align=right><a href="x">A link here</a></div><hr />
<h1>Header 2</h1>
<p>Some text here</p><p>Some more text here</p>
<div align=right><a href="x">A link here</a></div><hr />
诀窍是,我只需要提取文本的前 100 个字符(去除 HTML 标记)。我还需要保留换行符,不要打断任何单词。
所以上面的输出会是这样的:
Header 1 Some text here Some more text here A link here Header 2 Some text here Some
它有 98 个字符,并保留了换行符。到目前为止,我可以实现的是使用 Regex 去除所有 HTML 标签:
Regex.Replace(htmlStr, "<[^>]*>", "")
然后使用正则表达式修剪长度:
Regex.Match(textStr, @"^.{1,100}\b").Value
我的问题是,如何保留换行符?我得到如下输出:
Header 1 Some text hereSome more text here A link here Header 2 Some text hereSome more text
注意到连接的句子了吗?也许有人可以向我展示解决此问题的其他方法。谢谢!
附加信息:我的目的是从一堆 HTML 内容中生成纯文本概要。猜猜这将有助于澄清这个问题。
【问题讨论】:
-
您是否正在尝试创建一个非常基本的浏览器?我问是因为如果是这样,简单地使用正则表达式(显然)只会让你到目前为止。
-
@Phairoh 不是浏览器,更像是一个自动概要生成器。
标签: asp.net html regex string html-content-extraction