Text/Clean

リストを SQL の IN 句・JSON 配列・Markdown・HTML リストに変換する

1行に1つずつ書かれた値のリストを SQL の IN 句、JSON 配列、Markdown や HTML のリストに変える方法。引用符で囲む、カンマでつなぐ、引用符のエスケープ順を例で解説。

Excel の列やメモ帳に1行に1つずつ書かれた値のリストをコードや文書に入れるには、引用符で囲んでカンマでつなぐ必要があります。値が数百個もあると、手作業では大変です。基本の考え方は2つの処理の組み合わせです。行の前後に文字を付ける で各行の前後に文字を付け、改行を削除(1行にまとめる) で行を1つにつなげます。

SQL の IN 句

標準レシピは、空白の整理、空行の削除、重複の削除を経てから、各行をシングルクォートで囲んで , でつなぎます。

レシピリスト → SQL IN の値
  1. 前後の空白を削除
  2. 空行を削除
  3. 重複行を削除
  4. 行の前後に文字を付ける
  5. 改行を削除(1行にまとめる)
このレシピでツールを開く
A-1001
A-1002
 A-1003

A-1001

上の入力は次の1行になります。

'A-1001', 'A-1002', 'A-1003'

結果を WHERE code IN () の間に貼り付ければ完成です。括弧までツールで付けたいなら、最後に 検索と置換 を正規表現モードで追加し、検索する内容 ^(.*)$、置換後の内容 IN ($1) を入れてください。つなげた後は1行なので、全体が1回だけ囲まれます。

値の中にシングルクォートがあるとき

O'Brien のように値にシングルクォートがあると 'O'Brien' となり、SQL の構文エラーになります。SQL の文字列の中のシングルクォートは2つ重ねて書く必要があるので、引用符を付ける前に検索と置換のステップを入れ、検索する内容 '、置換後の内容 '' にしてください。順番が逆になると、今付けた外側の引用符まで2倍になってしまいます。

'O''Brien', 'D''Angelo'

数値のリストなら、引用符なしでつなぐのが正解です。レシピの「行の前後に文字を付ける」ステップをオフにしてください。

この方法はリストを手早く作るためのものです。プログラムでユーザーの入力を SQL に入れるときは、文字列を連結せず、データベースライブラリのパラメータバインディングを使ってください。

JSON 配列

  1. 値の中にバックスラッシュがあるなら、検索と置換を通常モードにし、「\n \t を改行・タブとして解釈」をオフにしたまま \\\ に置き換えます。
  2. 同じ方法で "\" に置き換えます。バックスラッシュを先に処理しないと、今入れたバックスラッシュがまた2倍になってしまいます。
  3. 「行の前後に文字を付ける」で、先頭に "、末尾に " を付けます。
  4. 「改行を削除」を「直接入力」、区切り文字 , で適用します。
  5. 結果の前後に [] を付けます。上の正規表現の方法で ^(.*)$[$1] としてもかまいません。
["東京", "大阪", "名古屋"]

Markdown のリスト

箇条書きのリストは、「行の前後に文字を付ける」の「先頭に付ける文字」に - を入れれば完成です。番号付きリストが必要なら 行番号を付ける を使い、形式を {n}. にします。元のテキストにすでに番号や箇条書き記号が付いているなら、前のステップに 行番号・箇条書き記号を削除 を入れて先に削除してください。

- 東京
- 大阪
- 名古屋

HTML のリスト

  1. 値に &< が含まれているなら、検索と置換で先に &&amp;、次に <&lt; に置き換えます。順番が逆だと、&lt;& がまた置き換えられてしまいます。
  2. 「行の前後に文字を付ける」で、先頭に <li>、末尾に </li> を付けます。
  3. 結果を <ul></ul> の間に入れます。
<li>東京</li>
<li>大阪</li>
<li>名古屋</li>

正規表現の選択肢リストを作る

キーワードのリストを1つの正規表現にまとめるには、「改行を削除」の区切り文字に | を入れて りんご|なし|ぶどう のようにします。値に . ( + のような正規表現の記号が含まれているなら、先に検索と置換を正規表現モードにし、検索する内容 [.*+?^${}()|[\]\\]、置換後の内容 \$& を入れて、記号の前にバックスラッシュを付けてください。

a\.b|\(c\)|1\+1

ほかの言語の配列

Python のリストや JavaScript の配列も、文字列を二重引用符で囲んでカンマでつなぐ点は JSON 配列と同じなので、上の JSON の手順をそのまま使えます。1行が長すぎて読みにくいなら、「行の前後に文字を付ける」の「末尾に付ける文字」に ", を入れ、「改行を削除」を省いて1行に1つずつ値を置く方法もあります。この場合、最後の値の後ろのカンマは手で削除してください。JSON は末尾のカンマを許可しません。

タブ区切りの1行

縦のリストをスプレッドシートの1行に横向きで貼り付けたいなら、「改行を削除」の区切り文字に \t を入れてください。タブでつながった結果を1つのセルに貼り付けると、値が右のセルへ1つずつ分かれて入ります。

注意

  • 付ける前に前後の空白を削除しておかないと、' A-1003' のように空白が引用符の中に入ってしまいます。
  • 「行の前後に文字を付ける」は「空行を飛ばす」が既定でオンですが、「改行を削除」の前に空行を削除しておくほうが結果を確認しやすくなります。
  • 作ったパイプラインに名前を付けてレシピとして保存しておけば、次回同じ変換をすぐに繰り返せます。

チェックリスト

  • 空白の整理 → 空行の削除 →(重複の削除)→ エスケープ → 前後に付ける → つなぐ、の順番を守る。
  • エスケープは引用符を付ける前に行う。
  • 数値はそのまま引用符なしでつなぐ。

最終更新: 2026-09-23