AngleSharp を使用して一部の HTML を処理し、後でマイニングするために要素のテキスト コンテンツを抽出すると、AngleSharp が HTML タグを取り除く方法に問題が発生しました。たとえば、次のような HTML があります (改行とタブを除く)。
<div id="someID">
blah, blah, blah, blah
blah, blah,
<ul>
<li><i>action.</i></li>
<li><i>Typical, blah, blah, blah</li>
</ul>
blah, blah, blah
</div>
ここでの問題は、次を取得したときですTextContent
。
var content = someDiv.TextContext;
次のようになります。
"...blah, blah, action.Typical blah, blah..."
単語action
とTypical
は空白なしでくっつけられています (それらの間にあるのは html タグだけであるため)。action.Typical
これは、2 つの単語ではなく 1 つの単語として認識されるため、テキスト コンテンツをトークン化する私の努力を台無しにしています。
もちろん、検索と置換 (おそらく正規表現を使用) を実行すること(\S)\.(\S)
も$1. $2
できます。とにかく、それ自体ではあまり役に立たない可能性があります)。複数のドットを含む単語を除外することはできますが、Web アドレスが( なしで) として表示されるか、または のようなメール アドレスが表示される場合があります。www.somecompany.com
www
somecompany
com
www
com
somecompany.com
www
somebody@somecompany.com
これを回避する堅牢な方法はありますか?タグが削除された後、少なくとも 1 つのスペースを保持するには?