リッチテキストエディタを介してユーザーが入力する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文字で、改行は保持されます。これまでに達成できることは、正規表現を使用してすべての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コンテンツからプレーンテキストの概要を生成することです。これは、この問題を明確にするのに役立つと思います。