2012-11-08 17 views
8

से छुटकारा पाने के regexp_matches वहाँ से regexp_matches के परिणाम में {""} ट्रिम करने के लिए कुछ बेहतर तरीका है:बेहतर तरीका लौटने कर्ली कोष्ठक

trim(trailing '"}' from trim(leading '{"' from regexp_matches(note, '[0-9a-z \r\n]+', 'i')::text)) 
+0

'regexp_matches' सभी मैचों की एक सरणी देता है। सरणी के स्ट्रिंग प्रस्तुति में घुंघराले ब्रेसिज़ होते हैं। सवाल यह है कि आप प्रत्येक सरणी तत्व के साथ क्या करना चाहते हैं? आप 'regexp_match()' फ़ंक्शन के परिणाम का उपयोग कैसे करते हैं? –

उत्तर

19

regexp_matches() सभी मैचों की एक सरणी देता है। किसी सरणी के स्ट्रिंग प्रस्तुति में घुंघराले ब्रेसिज़ होते हैं, यही कारण है कि आप उन्हें प्राप्त करते हैं।

तुम सिर्फ मेल खाने वाले सभी मदों की एक सूची चाहते हैं, आप array_to_string() उपयोग कर सकते हैं एक "सरल" पाठ डेटा प्रकार में परिणाम कन्वर्ट करने के लिए:

array_to_string(regexp_matches(note, '[0-9a-z \r\n]+', 'i'), ';') 

आप केवल पहले मैच में रुचि रखते हैं, तो आप सरणी के पहले तत्व का चयन कर सकते हैं:

(regexp_matches(note, '[0-9a-z \r\n]+', 'i'))[1] 
+0

मैं टेक्स्ट फ़ील्ड में बकवास पात्रों से छुटकारा पाना चाहता था, इसलिए मुझे 'array_to_string' की आवश्यकता है। स्पष्टीकरण के लिए धन्यवाद! –

+0

आपको बहुत धन्यवाद, यह काम करता है: डी –

संबंधित मुद्दे