改行削除ツール
テキストの改行を素早く削除、複数の処理モードに対応
処理方法を選択
改行削除とは?
改行削除は、テキスト内の改行文字を処理または削除する操作です。改行文字はテキストの表示形式を制御する特殊文字で、異なるシステムが異なる改行文字標準を使用しています:WindowsはCRLF(\r\n)、Unix/LinuxはLF(\n)、初期のMacはCR(\r)を使用していました。本ツールはすべての一般的な改行文字形式の処理に対応し、4つの処理モードを提供:すべての改行を削除、改行をスペースに変換、空行を削除、空行を結合、様々なシーンでのテキスト整理ニーズに対応します。
使い方
使い方
- 左の入力ボックスに処理したいテキストを入力または貼り付けます
- 処理モードを選択します(すべての改行を削除、改行をスペースに変換など)
- 結果はリアルタイムプレビューで右側に自動的に表示されます
- 「コピー」をクリックして結果をコピーするか、「スワップ」をクリックして結果を入力として再度処理できます
テキストクリーンアップのヒント
- 単語を区切ったままにしたい場合は「改行をスペースに変換」を選択してください。すべての改行を削除すると、単語やフィールドが意図せず結合されることがあります。
- CSV、コード、住所などの構造化データでは改行に意味がある場合があるため、コピーする前に結果をプレビューしてください。
利用シーン
仕組み
各モードはString.prototype.replaceのグローバル正規表現による1回の呼び出しで実装されています。全削除は/[\r\n]+/gで空文字列に置換し、改行→スペースは/[\r\n]+/gで半角スペース1つに置換します。空行結合は/(\r?\n){2,}/gで'\n\n'に置換し、3行以上の連続改行を1つの空行にまとめます。空行削除は/\r?\n/で分割し、trim後に空のエントリを除去してから'\n'で結合します。文字クラス[\r\n]を意図的に使用しているのは、3つの古典的な改行コード — CRLF(\r\n、DOS以降のWindows)、LF(\n、UnixおよびモダンmacOS)、単独CR(\r、System 9までのクラシックMac)— が同一ファイル内で混在するケース(プラットフォーム間のコピーやNotepadでのUnixファイル編集による一般的な産物)をすべて吸収するためです。UnicodeにはU+2028 LINE SEPARATORとU+2029 PARAGRAPH SEPARATORの2つの追加改行ポイントがありますが、実際には稀です。これらはUnicode UAX #14の改行アルゴリズムで定義され、ES2019以降のJavaScript文字列リテラルで認識されますが、本ツールでは通常の文字として扱います。これはチャットアプリからの貼り付け時にほとんどのユーザーが期待する動作です。UTF-8ファイル先頭のBOM(U+FEFF)も変更せずに通過します。厳密なパーサーを使用する場合は別途除去してください。リアルタイム更新はReactのuseState/useMemoペアで駆動されます。制御されたtextareaが入力を書き込み、メモがキー入力ごとに結果を再計算し、Reactの差分更新により出力パネルのみが再描画されます。数十KBまでの文字列に対する正規表現置換はモダンV8で1ミリ秒未満に完了するため、デバウンスは不要です。数MBの入力でも60Hzの16msフレーム予算を十分に下回ります。
- 全削除: text.replace(/[\r\n]+/g, '') — 連続する改行を全て除去。JSON文字列リテラルや.env値に適しています
- 改行→スペース: text.replace(/[\r\n]+/g, ' ') — 折り返し段落の単語境界を保持しつつスペースの重複を防ぎます
- 空行結合: text.replace(/(\r?\n){2,}/g, '\n\n') — 連続する空行を1つにまとめ、段落のリズムを保持します
- 空行削除: split(/\r?\n/).filter(l => l.trim() !== '').join('\n') — 内容のある行を保持し、改行コードをLFに正規化します
- 改行コードの種類: CRLF(Windows \r\n、もとはタイプライターの復帰+改行)、LF(1970年代からのUnix \n)、CR(System 9までのクラシックMac)— [\r\n]文字クラスで3つすべてを捕捉。Unicode UAX #14のU+2028とU+2029はES2019の文字列リテラルで認識されますが、ユーザー入力では稀です
- ファイル先頭のBOM(U+FEFF)はそのまま残されます。次の段階が厳密なJSONやCSVパーサーの場合はtext.replace(/^\uFEFF/, '')で除去してください
- Gitのcore.autocrlf=trueはチェックアウト時にCRLF↔LFを正規化します。ファイルがすでに誤った改行コードでマシンに到着し、Gitが捕捉しなかった場合に本ツールを使用してください
使用例
PDF からコピーしたテキストの整形
元: Thi s is
from PDF
copied
content
変換後: ThisisfromPDFcopiedcontentコード圧縮の例
元: function hello() {
return 'world';
}
圧縮後: function hello(){return 'world';}記事の段落整形
段落間隔を維持しつつ余分な空行を削除し、整った標準的な記事フォーマットに整形よくある質問
どのような改行が削除されますか?
3 種類の改行コードすべて:LF(\n、Unix/macOS)、CRLF(\r\n、Windows)、CR(\r、旧 Mac)。出力は 1 行になります。オプションでタブ、連続スペース、その他の空白文字も削除または正規化できます。
段落間の空白は保持されますか?
「半角スペースに置換」を有効にすると、各改行が 1 つのスペースに置き換えられます。「完全に削除」を有効にすると、何も挟まずに連結します。空行を含む段落の場合、段落区切り(1 つの改行)を保持して段落内の改行のみを除去するオプションもあり、PDF からコピーしたテキストの改行解除によく使われます。
貼り付けたテキストに削除できない改行が残るのはなぜですか?
おそらくソフト改行や U+2028(LINE SEPARATOR)、U+0085(NEL)といった不可視の区切り文字です。通常の改行削除ではなく、Unicode 対応の「すべての空白区切り文字を削除」を有効にしてください。PDF コピーにはゼロ幅スペースが含まれることもあるため、「不可視文字を削除」もオンにしてください。
コードでテキストを連結するのと何が違いますか?
操作自体は同じで、見た目の違いだけです。JavaScript の `text.replace(/\r?\n/g, ' ').trim()` と等価のことを行います。スクリプトを書くならコードで、その場限りの貼り付けを整形するならこちらでどうぞ。
末尾の空白や連続スペースも削除されますか?
「連続スペースをまとめる」を有効にすれば削除されます。元のテキストが整列のために複数のスペースを使っていた場合に便利です。各行末の空白は連結の前に除去されます。
CJK テキストでも動作しますか?
はい。中国語・日本語の文字に挟まれた改行を削除する際、デフォルトでは欧文スペースを挿入しません。東アジアの句読法では文字間にスペースを入れないためです。英文と CJK が混在する場合は「単語間スペースを保持」オプションを有効にしてください。
テキストはアップロードされますか?
いいえ。置換処理はブラウザ内で実行されます。貼り付けたテキストが送信されることはありません。