ठीक है, जवाब मिला। जाहिर है, मुझे प्रतिस्थापन में बैकस्लैश से दोबारा बचने की जरूरत है। साथ ही, मुझे E
. की आवश्यकता है पोस्टग्रेज के पुराने संस्करणों (मेरे मामले में 8.3) पर खोज पैटर्न में उपसर्ग और डबल-एस्केप बैकस्लैश। अंतिम कोड इस तरह दिखता है:
regexp_replace('abc [def]', E'([\\[\\]\\(\\)\\\\\?\\|_%])', E'\\\\\\1', 'g')
हाँ, यह भयानक लग रहा है, लेकिन यह काम करता है :)