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

पोस्टग्रेज:स्ट्रिंग में एनटी कैरेक्टर तक टेक्स्ट निकालें

आप पैटर्न मिलान का उपयोग कर सकते हैं Postgres में कार्य करता है।

पहले एक पैटर्न का पता लगाएं चौथे > . तक सब कुछ कैप्चर करने के लिए चरित्र।

अपना पैटर्न शुरू करने के लिए आपको एक उप-समूह बनाना चाहिए जो गैर > . को कैप्चर करता है अक्षर, और एक > चरित्र:

([^>]*>)

फिर > . के चौथे इंस्टेंस पर पहुंचने के लिए उस चार बार कैप्चर करें

([^>]*>){4}

फिर, आपको इसे एक समूह में लपेटना होगा ताकि मैच सभी चार उदाहरणों को वापस लाए:

(([^>]*>){4})

और यह सुनिश्चित करने के लिए अच्छे माप के लिए स्ट्रिंग प्रतीक की शुरुआत करें कि यह केवल स्ट्रिंग की शुरुआत से मेल खाता है (बीच में नहीं):

^(([^>]*>){4})

यहां इसका कार्यशील regex101 उदाहरण दिया गया है!

एक बार आपके पास पैटर्न है जो पहले समूह तत्व (जिसे आप दाएं तरफ पैनल पर ऑनलाइन रेगेक्स पर बता सकते हैं) में जो चाहते हैं उसे वापस कर देंगे, तो आपको इसे SQL में वापस चुनना होगा।

Postgres में, सबस्ट्रिंग फ़ंक्शन सबस्ट्रिंग में 'से' कथन का उपयोग करके इनपुट से टेक्स्ट निकालने के लिए रेगेक्स पैटर्न का उपयोग करने का विकल्प होता है।

समाप्त करने के लिए, यह सब एक साथ रखें!

select substring(filter_type from '^(([^>]*>){4})')
from filter_table

एक कार्यशील sqlfiddle यहां देखें

यदि आप > . के चार से कम इंस्टेंस होने पर पूरी स्ट्रिंग का मिलान करना चाहते हैं , इस रेगुलर एक्सप्रेशन का उपयोग करें:

 ^(([^>]*>){4}|.*)


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. अपरकेस से मिलान करने के लिए Postgresql रेगेक्स, यूनिकोड-जागरूक

  2. एंटिटी फ्रेमवर्क 7 में टेबल और प्रॉपर्टीज का केस असंवेदनशील नाम

  3. PostgreSQL में पावर () फ़ंक्शन कैसे काम करता है

  4. Postgresql 9.3 में सभी भौतिक विचारों को एक साथ रीफ्रेश कैसे करें?

  5. PostgreSQL तक पहुँचने के लिए Paramiko के साथ SSH टनल सेट करें