Ich bin eine sqlite3-Datenbank auf MySQL zu konvertieren.Regexp für Angebote in der Datenbank Insert-Anweisungen ersetzt
Ich habe eine nette Kommandodatei für sed, die benötigt AUTOINCREMEMT und die anderen Dinge verändert, aber ich bin auf den letzten stecken: doppelte Anführungszeichen.
sqlite3 Dump-Format:
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!')
Zum ersten Aussage kann ich alle doppelte Anführungszeichen mit Backticks und MySQL werden gerne ersetzen.
Allerdings haben meine Produktinformation doppelte Anführungszeichen in den Daten. Wie kann ich diese vom Austauschen ausschließen? Ich habe versucht, nur diese doppelten Anführungszeichen mit einem Platzhalter zu ersetzen, dann könnte ich alle anderen doppelten Anführungszeichen ersetzen, dann könnte ich den Platzhalter zurück ändern, aber meine Regex-Fu ist nicht auf Par.
Das war, soweit ich bekam:
/"[^"]*"/s
... die doppelten Anführungszeichen Texte übereinstimmen, aber ich kann nicht herausfinden, wie zu qualifizieren, dass nur doppelte Anführungszeichen in einfachen Anführungszeichen abgestimmt werden sollten.
Stellen Sie sicher, entweder nicht haben, oder können die folgenden Fälle behandeln: * Apostrophe * einzelne Anführungszeichen entgangen, die eine Linie Endspanne Es könnte einfacher sein, all die einfachen Anführungszeichen mit einem anderen Charakter zu ersetzen, dann wandle sie zurück. Wie viele Instanzen hast du? Wenn Sie einen Import versuchen und Fehler ignorieren, können Sie die Fehler am Ende zählen. – TheJacobTaylor