HTMLからテキストへの変換ツール

プレーンテキストのメール、テキスト分析、文字数カウントの処理では、いずれもHTMLを人間が実際に目にする読みやすい文字列に変換し、マークアップの残りかすを取り除く必要があります。HTMLを貼り付けると、このツールがすべてのタグを削除し、エンティティをデコードし(&&)、インデントによって生じた余分な空白をまとめて、分析やマルチパートメールのtext/plainパート用にそのまま使える、きれいで読みやすい文章を出力します。

HTMLをテキストに変換する方法

  1. 1

    HTMLを貼り付ける

    サイズは自由です。短い断片でも、リッチなメール本文でも、ページ全体でも構いません。

  2. 2

    変換する

    ワンクリック: すべてのタグと属性が削除され、エンティティがデコードされます。

  3. 3

    改行を確認する

    段落、リスト項目、表の行がそれぞれ別の行になり、テキストの構造が保たれます。

  4. 4

    テキストをコピーする

    出力は純粋なUnicodeテキストなので、文字数カウンターやメールテンプレート、感情分析モデルにそのまま渡せます。

変換処理における複雑なタグの扱い方

HTMLをテキストに変換する処理は、単なるstring.replace(/<[^>]+>/, "")では済みません。単純な正規表現ではエンティティのコードやインデントの空白がそのまま残り、</p>が新しい行を始めるべきだということも分かりません。

ブロックレベルとインライン

ブロックレベルのタグ(<br>、および閉じタグの</p></div></h1></h6></li></tr>)はそれぞれ改行を1つ生成します。インラインタグ(<a><span><strong>)は空白を残さないため、単語どうしがつながってしまうことはありません。

個々のタグの扱い

タグ 処理
<br> 改行1つ
</p></div></h1></h6> 閉じタグごとに改行1つ
</li></tr> 改行1つ、箇条書きの記号や表のセル区切りは追加されない
<a href="url">text</a> texthref属性は削除される
<img alt="text"> 何も出力されない。タグに表示テキストがないため
<script><style> タグだけが削除され、間のテキストは残る

エンティティのデコード

  • 名前付きエンティティ(&amp;&copy;&eacute;)は対応するUnicode文字にデコードされます。
  • 数値エンティティ(&#169;&#x00A9;)もデコードされます。
  • 未知のエンティティはそのまま保持されるため、分析ツールでも確認できます。

空白の正規化

  • 改行の前のスペースとタブは削除されます。
  • 空行が3行以上続くと、空行1行にまとめられます。
  • 単語間のスペースはそのまま保持され、変換ツールがテキストを並べ直すことはありません。

活用例

  • マルチパートメールのtext/plainパートを生成する。
  • スクレイピングした記事を言語モデルに渡す前にクリーンアップする。
  • プレーンテキストの検索インデックスに投入する。
  • マークアップを無視した正確な文字数(単語数)を算出する。

よくある質問

視覚的な書式設定(太字、色、フォント)は失われます、それが目的です。構造は改行として残ります。段落、リスト項目、表の行がそれぞれ別の行になるため、テキストは読みやすさを保ちます。

リンクの表示テキストは残りますが、URLはタグの属性とともに削除されます。URLが必要な場合は、HTMLをMarkdownに変換する専用ツールを使ってください。

変換ツールはタグ自体だけを削除し、タグの間のテキストは保持するため、<script><style>ブロックの内容が出力に残ります。不要な場合は、元のHTMLから先に削除してください。

はい。出力はUTF-8であり、入力中のすべての非ASCII文字を保持します。&copy;&eacute;などのエンティティはそれぞれのUnicode対応文字にデコードされます。

関連ツール

このツールは他の言語でも利用できます