リストを SQL の IN 句・JSON 配列・Markdown・HTML リストに変換する
1行に1つずつ書かれた値のリストを SQL の IN 句、JSON 配列、Markdown や HTML のリストに変える方法。引用符で囲む、カンマでつなぐ、引用符のエスケープ順を例で解説。
Excel の列やメモ帳に1行に1つずつ書かれた値のリストをコードや文書に入れるには、引用符で囲んでカンマでつなぐ必要があります。値が数百個もあると、手作業では大変です。基本の考え方は2つの処理の組み合わせです。行の前後に文字を付ける で各行の前後に文字を付け、改行を削除(1行にまとめる) で行を1つにつなげます。
SQL の IN 句
標準レシピは、空白の整理、空行の削除、重複の削除を経てから、各行をシングルクォートで囲んで , でつなぎます。
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 配列
- 値の中にバックスラッシュがあるなら、検索と置換を通常モードにし、「\n \t を改行・タブとして解釈」をオフにしたまま
\→\\に置き換えます。 - 同じ方法で
"→\"に置き換えます。バックスラッシュを先に処理しないと、今入れたバックスラッシュがまた2倍になってしまいます。 - 「行の前後に文字を付ける」で、先頭に
"、末尾に"を付けます。 - 「改行を削除」を「直接入力」、区切り文字
,で適用します。 - 結果の前後に
[と]を付けます。上の正規表現の方法で^(.*)$→[$1]としてもかまいません。
["東京", "大阪", "名古屋"]
Markdown のリスト
箇条書きのリストは、「行の前後に文字を付ける」の「先頭に付ける文字」に - を入れれば完成です。番号付きリストが必要なら 行番号を付ける を使い、形式を {n}. にします。元のテキストにすでに番号や箇条書き記号が付いているなら、前のステップに 行番号・箇条書き記号を削除 を入れて先に削除してください。
- 東京 - 大阪 - 名古屋
HTML のリスト
- 値に
&や<が含まれているなら、検索と置換で先に&→&、次に<→<に置き換えます。順番が逆だと、<の&がまた置き換えられてしまいます。 - 「行の前後に文字を付ける」で、先頭に
<li>、末尾に</li>を付けます。 - 結果を
<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