テキストツール

プレーンテキストや構造化テキストを扱うためのツール — JSONの整形、JSON・YAML・CSV・XMLの相互変換、2つのテキストの比較、正規表現のテストを、すべてブラウザ内で。

よく使う変換

クリックするだけで、その作業用に設定済みのツールが開きます。

オンラインテキストツール - ブラウザで整形・検証・テストする

開発者が実際に扱っているのはテキストです。設定は JSON で届き、ログ行は正規表現でふるいにかけられ、API のレスポンスはオブジェクトになるずっと前にテキストとして読まれます。このカテゴリのツールは、その日常作業をブラウザの中で片づけます。アカウントも不要、サーバーへ何かを送ることもありません。

どのツールも完全にクライアント側で動きます。貼り付けたテキストはタブの中に留まり、あなたの端末上の JavaScript が処理するだけでネットワークには一切流れません。これは見た目以上に重要です。開発者が整形したいテキストは、たいてい素性の知れないサイトに貼り付けてはいけないテキストそのものだからです。本番 API のレスポンス、顧客レコード、トークン、認証情報の入った設定ファイル。

このカテゴリにあるもの

ツールできること使う場面
JSONフォーマッターJSON をインデントし、検証し、圧縮する。解析が失敗した文字位置も正確に示すAPI レスポンスが読めない一行になっている、あるいはペイロードが不正として拒否される
正規表現テスター入力しながらサンプルテキストに正規表現を適用し、一致箇所を強調してキャプチャグループを分解するログフィルタ、バリデーション規則、置換処理のためのパターンを書いている
JSON変換ツールJSON・YAML・CSV・XML をどの向きにも相互変換する。CSV にするときは入れ子の JSON を列に平坦化する設定を YAML にしなければならない、エクスポートを Excel で開きたい、古いサービスが XML しか話さない
テキスト比較ツール2つのテキストの間で追加・削除・変更されたすべての行を示し、変更された単語に印を付ける契約書、設定ファイル、関数の2つのバージョンが同じに見えて、実は違う
大文字・小文字変換ツールテキストを大文字、小文字、タイトルケース、camelCase、snake_case、kebab-case、URLスラッグに一度に変換するCaps Lockがオンのまま見出しを打ってしまった、または名前の一覧を変数名やWebアドレスにしたい
文字数カウントツール単語数、文字数、文の数、読むのにかかる時間を入力と同時に数え、重複行を削除し、Lorem ipsumを作るテキストを上限に収めなければならない、リストが重複だらけ、レイアウトにダミーテキストが必要
Markdown HTML変換ツールMarkdownをライブプレビューつきでHTMLに変換し、HTMLをMarkdownに戻すpushする前にREADMEを確認したい、Webの内容をMarkdownに移さなければならない

JSON の整形と検証

圧縮された JSON は機械が送るものであり、人間に読めるものではありません。JSONフォーマッターに貼り付ければインデントが入り、構造が視覚的に整い、データの形が一目でわかります。どの配列がどのオブジェクトの中にあるか、null がどこにあるか、その数値が実は文字列ではないか。

検証の側も同じくらい重要です。JSON の解析が失敗したとき、多くのツールは「不正です」としか言いません。役に立つフォーマッターは文字位置と理由を示します。最後の要素の後ろの余分なカンマ、二重引用符が必要なところの単一引用符、文字列内のエスケープされていない改行、ファイル先頭に紛れ込んだ BOM。この五つが現実の JSON エラーの大半を占め、しかも五つとも目で文字の壁を追っている限り見えません。

圧縮は同じ操作の逆方向です。ペイロードを curl コマンドや環境変数、空白が無駄な重みでしかないデータベースの列に貼り付ける前にやっておく価値があります。

JSON・YAML・CSV・XML の相互変換

同じデータを別の形式で運ばなければならないことはよくあります。API から受け取った JSON を YAML のマニフェストに、JSON 配列を表計算シートに、CSV のエクスポートを JSON のインポートに、古いサービスの XML を JavaScript で扱える形に。JSON変換ツールは、これらすべてを一か所でこなします。入れ子の JSON は CSV にすると address.city のようなドット区切りの列名になり、XML の属性は @ キーになり、壊れた入力は空の結果ではなく行と列で報告されます。

テキストの2つのバージョンを比較する

ファイルが変わっていて、どう変わったのかを正確に知りたいとき、2つのバージョンを並べて目で読むのは遅く、確実でもありません。テキスト比較ツールは Git と同じ Myers アルゴリズムで追加行と削除行の最小の組み合わせを求め、変更された各行の中で変わった単語に印を付けます。空白や大文字・小文字の違いを無視することもでき、結果は git apply が受け付ける unified diff としてコピーできます。

本番に届く前に正規表現を試す

正規表現は、書き間違えるのが異様に簡単で、後から読むのが異様に難しいコードです。確実な書き方は、実際のサンプルテキストに対して組み立てながら一致の変化を見ることであり、正規表現テスターはまさにそのためにあります。代表的な数行を貼り、パターンを打ち込めば、何を拾い何を取りこぼすかがその場でわかります。

意識してテストすべきなのは、後で噛みついてくるケースです。空行でも動くか。行末に空白があったら。同じ一致が一行に二度現れたとき、g フラグは本当に両方を拾うか。. は改行をまたぐべきか、それに合わせて s フラグを立てたか。キャプチャ目的ではなくグループ化目的のグループを足した途端、キャプチャグループの番号は思ったとおりのままか。

貪欲さは古典的な罠です。<.*> を <a>テキスト</a> に当てると、最初のタグではなく文字列全体に一致します。* は取れるだけ取るからです。<.*?> は最小限しか取らず、<a> だけに一致します。この違いは、頭で考えるより強調表示で見たほうが速い。

普通の一日のなかでの使いどころ

  • エンドポイントは 200 を返すのにクライアントが壊れる。ボディを整形すれば、抜けているフィールドは数秒で目に飛び込んできます。
  • 一万行のログから一つのフィールドを抜き出したい。まず五行のサンプルでパターンを組み、それから本番に流す。
  • 設定ファイルがデプロイ時に弾かれる。原因を知るためにもう一度コミットを push するのではなく、手元で検証する。
  • 同僚がチャットで改行の消えたペイロードを送ってきた。貼る、整形する、読む。
  • バリデーション規則を書いていて、利用者に穴を見つけられる前に何を通してしまうか知りたい。

クライアント側処理であることの意味

多くのオンラインフォーマッターは、テキストを POST でサーバーへ送り、そこで整形して返します。普通は行う理由のないデータ転送であり、そもそも許可されていないことも少なくありません。顧客名、アクセストークン、内部ホスト名、未公開のスキーマが含まれるものは、まさに端末から出してはいけないテキストです。

ここのツールはブラウザ自身の JSON パーサーと正規表現エンジンを使うので、アップロードするものがありません。確認もできます。ネットワークタブを開き、大きなペイロードを貼って整形してみれば、リクエストが一つも出ていないことがわかります。一度読み込めばオフラインでも動きます。

関連カテゴリ

混同されがちな三つ: 整形・検証・圧縮

整形(美化、プリティプリント)は、人間が構造を読めるように空白だけを変えます。検証は「解析できるか」という是か非かの問いに答え、否なら、どこで壊れたかを告げます。圧縮はパーサーが必要としないバイトをすべて削ります。三つは互いに独立です。妥当な JSON が読めないこともあれば、読める JSON が妥当でないこともある。良いフォーマッターは三つとも行うので、たいてい開発者が最初に開くツールになります。

よくある質問

ここではどのようなテキストツールが使えますか?
テキストの整形・変換・比較・分析のためのツールです。JSON整形ツール、JSON・YAML・CSV・XMLの相互変換ツール、2つのテキストの差分チェックツール、正規表現テスターがあります。
これらのツールは大量のテキストにも対応できますか?
はい。ただし、すべてサーバーではなくブラウザ内で処理されるため、性能はお使いのデバイスに依存します。
テキストはどこかに保存・共有されますか?
いいえ。これらのツールはすべてブラウザ内でローカルに処理され、アップロードや保存は行われません。