PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

PostgreSQL regexp_replace con espressione abbinata

OK, ho trovato la risposta. Apparentemente, ho bisogno di evitare due volte la barra rovesciata nella sostituzione. Inoltre, ho bisogno di E -prefisso e barre rovesciate a doppio escape nel modello di ricerca su versioni precedenti di postgres (8.3 nel mio caso). Il codice finale è simile al seguente:

regexp_replace('abc [def]', E'([\\[\\]\\(\\)\\\\\?\\|_%])', E'\\\\\\1', 'g')

Sì, sembra orribile, ma funziona :)