我有一个 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 内容中生成纯文本概要。猜猜这将有助于澄清这个问题。