sql >> Database >  >> RDS >> PostgreSQL

PostgreSQL regexp_replace met overeenkomende expressie

Oké, het antwoord gevonden. Blijkbaar moet ik de backslash dubbel escapen in de vervanging. Ik moet ook E -prefix en dubbele escape-backslashes in het zoekpatroon op oudere versies van postgres (8.3 in mijn geval). De uiteindelijke code ziet er als volgt uit:

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

Ja, het ziet er verschrikkelijk uit, maar het werkt :)



  1. Veilige manier om e-mail via PHP naar veel gebruikers te sturen

  2. Update-instructie in de opgeslagen procedure van Oracle werkt niet

  3. Waarom gebruikt `libpq` polling in plaats van notificatie voor het ophalen van gegevens?

  4. overeenkomende tabelnaam met showtabellen