Code

VSCodeで改行を置換する方法と空行の一括削除【正規表現モードの落とし穴】

スポンサーラベル
VSCodeで改行を置換する3つのパターンとつまずく2点 Code

当サイトはアフィリエイト広告を利用しています。

VSCode で「複数行を1行にまとめたい」「カンマ区切りを1行ずつに分けたい」「空行を全部消したい」といった編集は、置換(Ctrl + H)の正規表現モードで改行を \n と書くことで一度に片付きます。ただし、正規表現モードを入れ忘れる、Windows の改行だからと \r\n と書く、の2点でつまずきやすく、どちらも「何も起きない」か「おかしな文字が入る」だけでエラーは出ません。この記事では、よく使う3つの置換と、つまずく2点を実測の結果とあわせてまとめます。

VSCodeで改行を置換する3つのパターンとつまずく2点

確認は vscode.dev(ブラウザ版の VS Code)で、改行コードが CRLF のファイルを使って行いました(2026年9月)。デスクトップ版と同じエディタ部品ですが、手元のデスクトップ版では確認していません。

1. 置換パネルを開いて正規表現モードにする

  1. Ctrl + H で置換パネルを開く(macOS は公式のショートカット一覧では ⌥⌘F。本記事では未確認)
  2. 検索欄の右にある .* を押して、正規表現モードをオンにする(Alt + R でも切り替わる)
  3. 検索欄と置換欄に入力し、「すべて置換」を押す(Ctrl + Alt + Enter)

.* がオンになると、アイコンに色が付いて強調表示されます。改行を扱う置換は、すべてこのモードが前提です。

よく使う置換は次の3つです。

やりたいこと検索置換
改行をカンマにして1行にまとめる\n,
カンマを改行にして1行ずつに分ける,\n
空行(空白だけの行も含む)を消す^\s*\n(空のまま)

2. 改行を別の文字に置換する

複数行に分かれた値を、カンマ区切りの1行にまとめる例です。SQL の IN 句に並べたい、表計算ソフトにまとめて貼りたい、といった場面で使います。

line 1
line 2
line 3
line 4

検索に \n、置換に , を入れて「すべて置換」を押すと、次のように1行になります。

line 1,line 2,line 3,line 4

検索欄の件数表示は3件で、行と行の間の改行だけが置き換わります。最終行の末尾に改行がある場合はそれもカンマになるので、末尾に , が1つ残っていたら手で消してください。

3. 文字を改行に置換する

逆に、カンマ区切りの1行を1値ずつの行に分けるときは、検索に ,、置換に \n を入れます。上の例の結果に対して実行すると、元の4行に戻りました。

ここで正規表現モードがオフのままだと、置換欄の \n は改行として扱われず、\n という2文字がそのまま入ります。

line 1\nline 2\nline 3\nline 4

エラーは出ず、置換自体は成功したように見えるので気づきにくい点です。こうなったら Ctrl + Z で戻し、.* をオンにしてからやり直します。

4. 空行をまとめて削除する

4.1 ^\s*\n を空に置換する

空行を消すときは、検索に ^\s*\n、置換欄は空のままにします。「行頭から空白(スペース・タブ)だけが続いて改行で終わる行」を丸ごと消すという意味です。

次の8行(7行目はスペースだけの行)で試しました。

line 1


line 2

line 3
         
line 4

検索欄の件数は3件で、「すべて置換」のあとは次の4行だけが残りました。

line 1
line 2
line 3
line 4

連続した空行も1回でまとめて消え、見た目では気づきにくいスペースだけの行も消えています。

4.2 \n\n を \n に置換する方法では残る

「改行が2つ続く所を1つにする」という考え方で、検索 \n\n・置換 \n とする方法もよく見かけます。以前この記事でもこの方法を紹介していましたが、同じ8行で試すと次の結果になりました。

line 1

line 2
line 3
         
line 4

空行が2行続いていた所には1行残り、スペースだけの行も消えません。一度に置き換わるのは重ならない \n\n の組だけなので、連続する空行は何度か実行しないと消えきりません。確実に消すなら 4.1 の書き方を使います。

5. CRLF のファイルでも \n と書く

Windows で作ったファイルは改行コードが CRLF(\r\n)なので、検索も \r\n と書きたくなります。ところが CRLF のファイル(8行)で実測すると、結果は次のとおりでした。

検索(正規表現モード)件数
\n7件(行と行の間の改行すべて)
\r\n0件
\r0件

VSCode の検索では、CRLF の改行も \n で一致しました。CRLF のファイルでも改行は \n と書きます。以前この記事では「Windows 形式の改行なら \r\n\r\n を検索する」と書いていましたが、実測ではヒットしなかったので改めました。

改行コードそのものを CRLF から LF に変えたいときは、置換ではなく、画面右下のステータスバーにある CRLF をクリックし、表示された LF を選びます。

6. まとめ

  • 改行を扱う置換は、.*(正規表現モード)をオンにしてから行う。オフだと \n が文字のまま入る
  • 改行の置換は、検索 \n → 置換 ,、その逆は検索 , → 置換 \n
  • 空行の一括削除は、検索 ^\s*\n を空に置換する。\n\n → \n では消え残る
  • CRLF のファイルでも \n と書く。\r\n は0件になる

置換は Ctrl + Z で1回で戻せます。まずは小さなファイルで件数表示を確認してから、「すべて置換」を実行しましょう。

あわせて読みたい

コメント

タイトルとURLをコピーしました