zu-min.com

正規表現で CSV から SQL を作成する

ツールcsvregexpsql正規表現

更新1:Notepad++ で動かなかったので修正しました。 更新2:001 のような 0 埋めの数字が ' で囲まれない問題を修正しました

Excel のマクロで作っていたのですが、遅かったため正規表現を使って再現してみました。

区切り文字:, 引用符:" の想定で。

' をエスケープ

パターン:
'
 
置き換え後:
''

文字列を ' で囲む

パターン:
(?:^|(?<=,))(?!(?:NULL|0|(?:0\.|[1-9])[0-9\.]*)(?:(?=,)|$))(?:"(.*?(?<!\\))"|([^,"\r\n]*))(?:(?=,)|$)
 
置き換え後:
'\1\2'

INSERT 句を付ける

パターン:
^
 
置き換え後:
INSERT INTO 【テーブル名】 VALUES (

後ろのカッコとデリミタ ; を付ける

パターン:
$
 
置き換え後:
);

※SQL Server の場合は適度に GO を入れましょう。

CSV の , はそのまま生かす形になりました。業務で日常的に使ってはいますが、テストが不十分なので動作は保証したくないです。

関連記事