sqlite3 データベースを mysql に変換しています。
AUTOINCREMEMT およびその他の必要なものを変更する sed 用の優れたコマンド ファイルがありますが、最後のファイルである二重引用符に固執しています。
sqlite3 ダンプ形式:
CREATE TABLE "products" (
"id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
"name" varchar(255),
"desc" varchar(255) );
INSERT INTO "products" VALUES(1,'Flux Capacitor',
'This is the "real" thing.\nPromise!')
最初のステートメントでは、すべての二重引用符をバッククォートに置き換えることができ、mysql は問題なく動作します。
しかし、製品情報のデータに二重引用符が含まれています。これらを置き換えから除外するにはどうすればよいですか? これらの二重引用符のみをプレースホルダーに置き換えようとしていた場合、他のすべての二重引用符を置き換えてから、プレースホルダーを元に戻すことができましたが、私の正規表現は標準に達していません。
これは私が得た限りでした:
/"[^"]*"/s
...二重引用符で囲まれたテキストを一致させますが、単一引用符内の二重引用符のみを一致させる必要があることを修飾する方法がわかりませんでした。