regexp_matches(string text, pattern text [, flags text])
फ़ंक्शन कैप्चर किए गए मान लौटाता है:
आप गैर-कैप्चरिंग समूहों का उपयोग करके व्यंजक को ठीक कर सकते हैं:
SELECT unnest(regexp_matches('4-0001-1234 4.0001.12344 4-0-0-0-1-1234', '4(?:[\s/.-]*0){3}(?:[\s/.-]*[12])(?:[\s/.-]*\d){4}', 'g'));
ऑनलाइन डेमो देखें ।
BTW, आपको - escape से बचने की आवश्यकता नहीं है जब यह ब्रैकेट एक्सप्रेशन के प्रारंभ/अंत में हो, और न तो बचने की कोई आवश्यकता हो और न ही / न ही . वहां। मैं {1} . को हटाने का भी सुझाव देता हूं a . के रूप में =a{1} सीमित परिमाणकों का समर्थन करने वाले किसी भी रेगेक्स में।
