करने के लिए सबसे आसान काम रेगेक्स में होने के लिए अपनी स्ट्रिंग को तैयार करने के लिए रेगेक्स का उपयोग करना है। अपनी स्ट्रिंग में गैर-शब्द वर्णों से बचना इसे रेगेक्स-सुरक्षित बनाने के लिए पर्याप्त होना चाहिए, उदाहरण के लिए:
=> select regexp_replace('. word * and µ{', E'([^\\w\\s])', E'\\\\\\1', 'g');
regexp_replace
--------------------
\. word \* and µ\{
तो कुछ इस तरह सामान्य रूप से काम करना चाहिए:
where some_text ~* x || regexp_replace(some_field, E'([^\\w\\s])', E'\\\\\\1', 'g') || y
जहां x
और y
रेगेक्स के अन्य भाग हैं।
यदि आपको अंत में रेगेक्स की आवश्यकता नहीं है (यानी कोई y
. नहीं ऊपर), तो आप (?q)
:
और एक q
इसका मतलब है कि:
तो आप उपयोग कर सकते हैं:
where some_text ~* x || '(?q)' || some_field
इस सीमित मामले में।