Ich muss einige Zeichenfolge in PostgreSQL auf ','
, aber nicht auf '\,'
(Backslash ist Escape-Zeichen). Zum Beispiel muss regexp_split_to_array('123,45,67\,89', ???)
die Zeichenfolge in Array {123, 45, "67\,89"}
teilen.Regulärer Ausdruck Ausschluss in PostgreSQL
Was bereits getan: E'(?<!3),'
arbeitet mit '3'
als Escape-Zeichen. Aber wie kann ich den Backslash anstelle von 3 verwenden?
funktioniert nicht:
E'(?<!\),'
nicht die Zeichenfolge an allen
E'(?<!\\),'
wirft Fehler "Klammern() nicht ausgeglichen" spaltet
E'(?<!\),'
(mit Leerzeichen) teilt auf alle ','
einschließlich '\,'
E'(?<!\\),'
(mit Leerzeichen) teilt sich auf alle ','
zu.
Ist ein Literal Backslash in der Eingabe maskiert? Was ist die erwartete Ausgabe für "123,45,67 \\, 89"? –
Bitte * immer * deklarieren Sie Ihre Version von Postgres. Und in diesem speziellen Fall auch die Einstellung für 'standard_conforming_strings'. Siehe: https://stackoverflow.com/a/12320729/939860 –