PostgreSQL
 sql >> डेटाबेस >  >> RDS >> PostgreSQL

पोस्टग्रेज में किसी फ़ील्ड से रेगेक्स में अनचाहे टेक्स्ट जोड़ने का सही तरीका?

करने के लिए सबसे आसान काम रेगेक्स में होने के लिए अपनी स्ट्रिंग को तैयार करने के लिए रेगेक्स का उपयोग करना है। अपनी स्ट्रिंग में गैर-शब्द वर्णों से बचना इसे रेगेक्स-सुरक्षित बनाने के लिए पर्याप्त होना चाहिए, उदाहरण के लिए:

=> 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

इस सीमित मामले में।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. क्या Sqlalchemy कई संलग्न SQLite डेटाबेस फ़ाइलों के साथ अच्छी तरह से काम कर सकता है?

  2. मैं तैयार बयान के साथ पोस्टग्रेस्क्ल में टाइमज़ोन के साथ टाइमस्टैम्प कैसे डाल सकता हूं?

  3. जॉइन के साथ UNNEST का उपयोग करना

  4. क्या डेटा प्रकार NUMERIC स्टोर हस्ताक्षरित मानों को पोस्टग्रेज़ कर सकता है?

  5. क्या फास्ट सबस्ट्रिंग खोजों के लिए पोस्टग्रेज में इंडेक्स करने का कोई तरीका है?