पैटर्न मिलान और पाठ निष्कर्षण

पूरा किया

SQL Server 2025 नए रेगुलर एक्सप्रेशन (REGEXP) फ़ंक्शन जोड़ता है और संरचित टेक्स्ट के साथ काम करने को सरल बनाने के लिए फ़ंक्शन को SUBSTRING बढ़ाता है। ये परिवर्धन डेवलपर्स को लचीली पाठ खोज करने, जटिल पैटर्न निकालने और क्लाइंट-साइड स्क्रिप्टिंग या सीएलआर फ़ंक्शंस पर भरोसा किए बिना सीधे टी-एसक्यूएल में डेटा को साफ या रूपांतरित करने की अनुमति देते हैं।

पैटर्न मिलान और पाठ निष्कर्षण कार्यों का अवलोकन

फ़ंक्शंस का नया REGEXP परिवार सीधे SQL सर्वर के अंदर नियमित अभिव्यक्ति मूल्यांकन का समर्थन करता है। प्रत्येक फ़ंक्शन विशिष्ट पैटर्न-आधारित टेक्स्ट संचालन को सक्षम करता है।

REGEXP_LIKE

जाँच करता है कि कोई स्ट्रिंग नियमित अभिव्यक्ति पैटर्न से मेल खाती है या नहीं। यदि यह मेल खाता है तो 1 लौटाता है, अन्यथा 0 देता है।

REGEXP_SUBSTR

पहली सबस्ट्रिंग निकालता है जो एक नियमित अभिव्यक्ति पैटर्न से मेल खाता है। फ़ोन नंबर, दिनांक या ईमेल पते जैसी विशिष्ट जानकारी निकालने के लिए उपयोगी।

REGEXP_REPLACE

एक पैटर्न के लिए एक स्ट्रिंग खोजता है और पैटर्न से मेल खाने वाली सभी घटनाओं को बदल देता है। इसका उपयोग डेटा क्लीनअप और फॉर्मेटिंग के लिए किया जा सकता है।

REGEXP_INSTR

पहले सबस्ट्रिंग की प्रारंभिक स्थिति लौटाता है जो दिए गए पाठ के भीतर पैटर्न से मेल खाता है। संरचित पाठ में प्रमुख मार्करों का पता लगाने के लिए आदर्श।

REGEXP_COUNT

किसी दिए गए स्ट्रिंग में एक नियमित अभिव्यक्ति पैटर्न के मिलान की संख्या की गणना करता है। यह गणना तब उपयोगी होती है जब आपको पैटर्न आवृत्ति को मापने की आवश्यकता होती है, जैसे कि पाठ में अंक, शब्द या प्रतीकों की गणना करना।

REGEXP_MATCHES

तालिका परिणाम के रूप में नियमित व्यंजक प्रतिमान से मेल खाने वाले सभी सबस्ट्रिंग लौटाता है. इसका उपयोग तब करें जब आपको केवल पहले मैच के बजाय एक ही स्ट्रिंग से कई कैप्चर की आवश्यकता हो।

REGEXP_SPLIT_TO_TABLE

एक नियमित अभिव्यक्ति सीमांकक का उपयोग करके एक स्ट्रिंग को कई पंक्तियों में विभाजित करता है।

सबस्ट्रिंग एन्हांसमेंट

SUBSTRING फ़ंक्शन अब एक वैकल्पिक लंबाई पैरामीटर का समर्थन करता है। जब छोड़ा जाता है, तो यह स्वचालित रूप से निर्दिष्ट प्रारंभ स्थिति से स्ट्रिंग के अंत तक निकालता है, जिससे मैन्युअल LEN() गणना की आवश्यकता कम हो जाती है।

साथ में, ये क्षमताएं आपको संक्षिप्त, पठनीय T-SQL के साथ सीधे SQL Server 2025 में टेक्स्ट पैटर्न खोजने, निकालने और हेरफेर करने देती हैं।


उदाहरण परिदृश्य: संपर्क डेटा निकालना और साफ़ करना

एक मार्केटिंग टीम नाम के MessageTextकॉलम में ग्राहक संदेशों का एक डेटाबेस रखती है। कई प्रविष्टियों में विभिन्न स्वरूपों में फ़ोन नंबर शामिल हैं। आपको प्रत्येक संदेश से पहला फ़ोन नंबर निकालना होगा, इसे एक मानक प्रारूप में सामान्य करना होगा, और उन संदेशों की पहचान करनी होगी जिनमें अमान्य फ़ोन नंबर शामिल हैं।

नमूना डेटा

मान लें कि आपके पास एक तालिका में निम्नलिखित नमूना डेटा है जिसे कहा जाता है CustomerMessages:

मैसेजआईडी संदेशपाठ
1 "मुझे (713) 555-1298 या कार्यालय 555-8811 पर कॉल करें।
2 "मुझसे संपर्क करें: +1-832-555-7821 धन्यवाद!"
3 "मेरा नंबर 713-555-9876 एक्सटेंशन 33 है"
4 "अभी तक कोई फोन सूचीबद्ध नहीं है।

क्वेरी: पहचानें, निकालें और मानकीकृत करें

-- Extract the first phone number pattern and format it consistently
SELECT MessageID,
       REGEXP_SUBSTR(MessageText, '\d{3}[)\-\s]*\d{3}[\-\s]*\d{4}') AS RawNumber,
       REGEXP_REPLACE(
           REGEXP_SUBSTR(MessageText, '\d{3}[)\-\s]*\d{3}[\-\s]*\d{4}'),
           '\D', ''
       ) AS DigitsOnly,
       CASE 
           WHEN REGEXP_LIKE(MessageText, '\d{3}[)\-\s]*\d{3}[\-\s]*\d{4}') = 1 THEN 'Valid'
           ELSE 'Missing'
       END AS PhoneStatus
FROM dbo.CustomerMessages;

परिणाम

मैसेजआईडी रॉ नंबर केवल अंक फोनस्टेटस
1 (713) 555-1298 7135551298 मान्य
2 +1-832-555-7821 18325557821 मान्य
3 713-555-9876 7135559876 मान्य
4 शून्य शून्य लुप्‍त

यह उदाहरण पहले मिलान पैटर्न को निकालने, REGEXP_SUBSTR गैर-संख्यात्मक वर्णों को पट्टी करने और REGEXP_REPLACE मान्य संख्याओं को सत्यापित करने के लिए उपयोग करता REGEXP_LIKE है। क्वेरी फ़ोन नंबरों को सीधे T-SQL में एक सुसंगत अंक-केवल प्रारूप में मानकीकृत करती है।


उदाहरण 2: REGEXP_SPLIT_TO_TABLE और सबस्ट्रिंग के साथ डेटा को विभाजित करना

मान लीजिए कि एक और तालिका, CustomerFeedbackग्राहकों के हितों का वर्णन करने वाले अल्पविराम से अलग टैग संग्रहीत करती है। आप उन्हें अलग-अलग पंक्तियों में अलग करना चाहते हैं और त्वरित अनुक्रमण के लिए पहला कीवर्ड निकालना चाहते हैं।

SELECT FeedbackID,
       value AS Tag,
       SUBSTRING(value, 1) AS FirstWord
FROM CustomerFeedback
CROSS APPLY REGEXP_SPLIT_TO_TABLE(Tags, '\s*,\s*');

यह क्वेरी प्रत्येक अल्पविराम-सीमांकित स्ट्रिंग को पंक्तियों में विभाजित करती है, जबकि नए SUBSTRING व्यवहार का उपयोग करते हुए (लंबाई निर्दिष्ट किए बिना) प्रारंभ स्थिति से संपूर्ण शेष पाठ को निकालने के लिए।

परिणाम

फीडबैक आईडी टैग फर्स्टवर्ड
1 यात्रा यात्रा
1 छायाचित्रकारी छायाचित्रकारी
2 लंबी पैदल यात्रा लंबी पैदल यात्रा
2 डेरा डालना डेरा डालना

सारांश

SQL Server 2025 में नए REGEXP फ़ंक्शन और उन्नत SUBSTRING फ़ंक्शन मूल पैटर्न-मिलान और टेक्स्ट-निष्कर्षण क्षमताएं प्रदान करते हैं। ये जोड़ बाहरी स्ट्रिंग प्रसंस्करण की आवश्यकता को समाप्त करते हैं, जिससे डेटाबेस इंजन के अंदर पाठ्य डेटा को साफ करना, पार्स करना और विश्लेषण करना आसान हो जाता है। इन उपकरणों के साथ, डेवलपर्स ETL पाइपलाइनों को सरल बना सकते हैं, डेटा गुणवत्ता में सुधार कर सकते हैं, और सीधे T-SQL में उन्नत टेक्स्ट-संचालित एनालिटिक्स को सक्षम कर सकते हैं।