空白とは何か
空白(ホワイトスペース)とは、画面上で何もない場所として表示される文字のことです。通常のスペース、タブ、改行のほか、ノーブレークスペース(U+00A0)、全角幅のエムスペース(U+2003)、ゼロ幅スペース(U+200B)など、あまりなじみのない文字も含まれます。日本語の文章でよく使われる全角スペース(U+3000)もその1つです。どれも目に見えないので見落としがちですが、実際に問題を起こします。連続したスペースは印刷すると雑に見えます。末尾のスペースがあると表計算ソフトの検索関数が一致しなくなります。商品コードにゼロ幅スペースが隠れていると、見た目が同じ2つのコードが一致しません。
このツールはそうした空白を見つけて削除したり標準的な形にそろえたりします。文字そのものには手を加えません。
空白削除ツールの使い方
- 文章をテキスト欄に貼り付けます。
- 右側の整えたテキストを確認します。入力やオプションの変更に合わせてすぐに更新されます。
- 整える内容を選びます。次の項目は初期設定でオンになっています。
- 行頭と行末の空白を削除:各行の先頭と末尾にあるスペースとタブを取り除きます。
- 連続スペースを1つに:続けて並んだスペースを1つのスペースにします。
- 空行を削除:空の行を削除します。スペースしか入っていない行も対象です。
- 見えない空白・特殊な空白を修正:ノーブレークスペースなどの幅のある空白を通常のスペースに変え、ゼロ幅の文字を削除します。全角スペースもここで半角スペースに変わります。
- 次の項目は大きな変更になるため、初期設定ではオフです。
- タブをスペースに:タブを1つずつ半角スペースに置き換えます。
- すべての改行を削除:すべての行をスペースでつなげて1行にします。
- すべてのスペースを削除:スペースとタブをすべて削除します。
- コピーまたはダウンロードを押します。
ツールの下には、削除した空白文字の数が表示されます。文字数は変わらず空白の種類だけが変わった場合は、「タブをスペースに置き換えました。」(タブをスペースにでタブを置き換えたとき)か、「特殊な空白を通常のスペースに置き換えました。」(全角スペースやノーブレークスペースだけを置き換えたとき)と表示されます。たとえば「こんにちは 世界」を初期設定で変換すると、後者のメッセージになります。
変換例
| 入力 | オプション | 結果 |
|---|---|---|
Too many spaces here. |
初期設定 | Too many spaces here. |
| Line one、空行3つ、Line two | 初期設定 | Line one、次の行に Line two |
a b c |
すべてのスペースを削除 | abc |
| one、two、three が別々の行 | すべての改行を削除 | one two three |
4111 1111 1111 1111 |
すべてのスペースを削除 | 4111111111111111 |
| Tabs[tab]and([tab] はタブ) | タブをスペースに | Tabs and |
最初の例では、ツールは12個の空白文字を削除しました。Web ページからコピーした「and hidden spaces」のような行には、ノーブレークスペースとゼロ幅スペースが含まれていることがあります。見えない空白・特殊な空白を修正は前者を通常のスペースに変え、後者を削除します。見えない文字でくっついていた単語は、画面に表示されていたとおりの並びに戻ります。
日本語の例も挙げておきます。「こんにちは 世界 」(全角スペース入り)を初期設定で変換すると「こんにちは 世界」になります。「東京都 港区 1-2-3」にすべてのスペースを削除を使うと「東京都港区1-2-3」になり、全角スペースも半角スペースも消えます。
余分な空白が入る理由
- PDF からのコピー。 PDF の文章は1行ずつ配置されているため、コピーすると改行や連続したスペースが一緒に付いてきがちです。主な問題が文の途中の改行であれば、改行削除ツールの方が適しています。
- Web ページからのコピー。 多くのサイトは単語が離れないようにノーブレークスペースを使っており、長い単語を折り返せるようにゼロ幅スペースを入れるサイトもあります。
- 入力の癖。 英文でピリオドの後にスペースを2つ入れる習慣はいまも残っていますが、現在のスタイルガイドの多くは1つを推奨しています。日本語では、字下げや位置合わせのために全角スペースを入れる習慣もよく見られます。
- ほかのソフトからの書き出し。 表計算ソフトやデータベースでは、値の末尾にスペースを足して固定幅にそろえていることがよくあります。
- インデント。 コードやメールからコピーした文章は、各行にタブや先頭のスペースが付いていることがあります。
コツと注意点
- 段落は残して乱れだけ直す。 段落の間に空行を入れている文章なら、空行を削除をオフにしてください。行のトリムと連続スペースの統一はそのまま行われます。
- 表や列。 表計算ソフトからコピーした文章では、セルの間がタブで区切られています。結果を表計算ソフトに貼り戻したいなら、タブをスペースにはオフのままにしてください。
- コード。 Python、YAML、Makefile ではインデントが意味を持ちます。コードを整えるときは、先に行頭と行末の空白を削除をオフにしないとインデントが消えてしまいます。
- 全角スペースを残したい場合。 全角スペースを半角に変えたくないときは、見えない空白・特殊な空白を修正をオフにしてください。全角スペースはそのまま残ります。
- ほかの記号。 このツールが扱うのは空白だけです。句読点や記号も削除したい場合は記号削除ツールを使ってください。装飾フォントやカーブした引用符にはプレーンテキスト変換が使えます。
余分なスペースを削除するほかの方法
Microsoft Word。 「検索と置換」(Ctrl+H)を開きます。「検索する文字列」にスペースを2つ、「置換後の文字列」にスペースを1つ入力して「すべて置換」を押します。置換される箇所がなくなるまで繰り返してください。空行を削除するには、^p^p を検索して ^p に置換します。
Google ドキュメント。 「編集」メニューから「検索と置換」を開きます。「正規表現を使用」にチェックを入れ、 {2,}(スペースの後に {2,})を検索して、スペース1つに置換します。
Excel と Google スプレッドシート。 =TRIM(A1) は両端のスペースを取り除き、文中の連続したスペースを1つにまとめます。ただしノーブレークスペースは削除されません。Web からコピーした文章には =TRIM(SUBSTITUTE(A1, CHAR(160), " ")) のように組み合わせて使ってください。
コード。 JavaScript では text.replace(/ {2,}/g, ' ').trim() で連続スペースをまとめ、text.replace(/\s+/g, '') ですべての空白を削除できます。Python では " ".join(text.split()) で、改行を含むあらゆる連続した空白を1つのスペースにまとめられます。