Last chance! 50% off DataCamp Premium
Sale ends in
क्या आपने कभी अलग-अलग प्रारूपों में फोन नंबरों की सूची को मानकीकृत करने की आवश्यकता महसूस की है? फ्री-फॉर्म टेक्स्ट फ़ील्ड्स से कीवर्ड निकालने के बारे में क्या ख्याल है? पेश है: RegEx! RegEx, यानी रेगुलर एक्सप्रेशंस, शक्तिशाली और लचीले पैटर्न होते हैं जिनका उपयोग टेक्स्ट के ब्लॉक्स के भीतर स्ट्रिंग्स को मैच करने के लिए किया जाता है। इस लेख में, हम सामान्य रेगेक्स सिंटैक्स, Excel में रेगेक्स को कैसे सक्षम करें, और अंत में, उनका प्रभावी उपयोग कैसे करें, इस पर बात करेंगे।
रेगुलर एक्सप्रेशंस, जिन्हें अक्सर "regex" या "regexp" कहा जाता है, एक सर्च पैटर्न को परिभाषित करने का तरीका हैं, जिनका उपयोग सर्चिंग, पार्सिंग, और/या टेक्स्ट को रिप्लेस करने जैसे विभिन्न टेक्स्ट हेरफेर कार्यों के लिए किया जा सकता है। रेगुलर एक्सप्रेशंस का व्यापक उपयोग प्रोग्रामिंग, टेक्स्ट एडिटर्स और अन्य सॉफ्टवेयर में पैटर्न मैचिंग से जुड़े कार्यों के लिए होता है। Excel में रेगेक्स का फ्लेवर या सिंटैक्स .NET रेगुलर एक्सप्रेशन इंजन पर आधारित है।
रेगुलर एक्सप्रेशंस को उनकी विशेषताओं के आधार पर समूहित किया जा सकता है। नीचे वे सामान्य रेगुलर एक्सप्रेशंस दिए गए हैं जिनका आप सामना करेंगे।
रेगुलर एक्सप्रेशंस में ऐसे लिटरल कैरेक्टर्स हो सकते हैं जो खुद से मेल खाते हैं। उदाहरण के लिए, रेगेक्स "hello" स्ट्रिंग "hello" से बिल्कुल मेल खाएगा।
रेगुलर एक्सप्रेशंस में विशेष अर्थ वाले मेटा कैरेक्टर्स भी शामिल होते हैं। कुछ सामान्य मेटा कैरेक्टर्स में शामिल हैं:
. (डॉट): लाइनब्रेक को छोड़कर किसी भी एकल कैरेक्टर से मेल खाता है।*: पिछले कैरेक्टर या समूह की शून्य या अधिक आवृत्तियों से मेल खाता है।+: पिछले कैरेक्टर या समूह की एक या अधिक आवृत्तियों से मेल खाता है।?: पिछले कैरेक्टर या समूह की शून्य या एक आवृत्ति से मेल खाता है।| (पाइप): लॉजिकल OR की तरह काम करता है और आपको विकल्प निर्दिष्ट करने देता है।() (कोष्ठक): कैरेक्टर्स या सबपैटर्न्स को समूहित करता है।[] (स्क्वायर ब्रैकेट्स): एक कैरेक्टर क्लास परिभाषित करता है, जिससे आप किसी सेट में से किसी एक कैरेक्टर से मेल करा सकते हैं।^ (कैरेट): किसी पंक्ति या स्ट्रिंग की शुरुआत से मेल खाता है।$: किसी पंक्ति या स्ट्रिंग के अंत से मेल खाता है।\ (बैकस्लैश): किसी मेटा कैरेक्टर को लिटरली मैच कराने के लिए उसे एस्केप करता है।रेगुलर एक्सप्रेशंस (रेगेक्स) में कैरेक्टर क्लासेस खास संकेत हैं जो आपको किसी सेट में से किसी एक कैरेक्टर से मेल कराने देते हैं। ये रेगेक्स पैटर्न्स को सरल बनाते हैं क्योंकि इनके जरिए आप संक्षेप में उन कैरेक्टर्स के समूह को परिभाषित कर सकते हैं जिनसे मेल होना चाहिए। आप स्क्वायर ब्रैकेट्स [...] का उपयोग करके कैरेक्टर क्लासेस परिभाषित कर सकते हैं। उदाहरण के लिए, [aeiou] किसी भी स्वर से मेल खाता है। [A-Z] किसी भी अपरकेस अक्षर से मेल खाता है।
क्वांटिफायर्स वे संरचनाएँ हैं जो बताती हैं कि किसी मैच के लिए लक्ष्य स्ट्रिंग में कोई पैटर्न, कैरेक्टर, या कैरेक्टर क्लास कितनी बार आना चाहिए। दूसरे शब्दों में, वे निर्दिष्ट करते हैं कि किसी कैरेक्टर या समूह को कितनी बार दोहराया जाना चाहिए। उदाहरण के लिए, a{3} ठीक तीन लगातार "a" कैरेक्टर्स से मेल खाता है। ab? "a" या "ab" में से किसी एक से मेल खाता है।
एंकर विशेष कैरेक्टर्स होते हैं जो स्ट्रिंग में किसी कैरेक्टर से नहीं, बल्कि कैरेक्टर्स के पहले, बाद या बीच की पोजीशन से मेल खाते हैं। एंकर का उपयोग यह सुनिश्चित करने के लिए किया जाता है कि रेगेक्स पैटर्न टेक्स्ट में किसी खास जगह पर ही आए। उदाहरण के लिए, ^ पैटर्न को स्ट्रिंग की शुरुआत से और $ उसे अंत से एंकर करता है।
मॉडिफायर वे कैरेक्टर्स हैं जो यह बदलते हैं कि रेगेक्स इंजन पैटर्न की व्याख्या कैसे करता है। इनका उपयोग रेगेक्स मैच के व्यवहार को समायोजित करने के लिए किया जाता है, जिससे अधिक लचीलापन और नियंत्रण मिलता है। मॉडिफायर मैचिंग प्रक्रिया के विभिन्न पहलुओं, जैसे केस सेंसिटिविटी, मल्टीलाइन मैचिंग, और विशेष कैरेक्टर्स की व्याख्या को प्रभावित कर सकते हैं। उदाहरण के लिए, i पैटर्न को केस-इनसेंसिटिव बनाता है, और g उसे ग्लोबल बनाता है, जिससे इनपुट में आने वाली सभी घटनाओं से मेल होता है।
RegEx विभिन्न परिदृश्यों में उपयोगी है:
अधिकांश मामलों में, आपको यह सुनिश्चित करने के लिए डेटा को वैलिडेट करना होगा कि आप सही जानकारी देख रहे हैं। एक क्लासिक उदाहरण फोन नंबर हैं। अमेरिका में मानक प्रारूप (###) ###-#### है। हालांकि, इन्हें इस तरह भी फॉर्मैट किया जा सकता है: ###-###-####, (+#) ### ### ####, ########## इत्यादि। RegEx यह पहचानने में मदद कर सकता है कि फ़ाइल में निहित जानकारी वास्तव में फोन नंबर ही है। निम्न रेगुलर एक्सप्रेशन 10-अंकों वाले फोन नंबरों पर मैच लौटाएगा, जिसमें 1 से 2 अंकों का वैकल्पिक देश कोड हो सकता है: (\+\d{1,2}\s)?\(?\d{3}\)?[\s.-]?\d{3}[\s.-]?\d{4}$।
लंबे वाक्य पारंपरिक स्प्रेडशीट सॉफ़्टवेयर से अक्सर पार्स करना कठिन होते हैं। विशिष्ट कीवर्ड निकालने के लिए, आप RegEx का उपयोग कर सकते हैं। उदाहरण के लिए, इंटरव्यू ट्रांसक्रिप्ट से सिंगल उद्धरण चिह्नों में बंद पुस्तक शीर्षक निकालने के लिए हम निम्न रेगुलर एक्सप्रेशन का उपयोग कर सकते हैं: '(.*?)'।
जानकारी निकालने के अलावा, आप रिपोर्टिंग उद्देश्यों के लिए उसे ट्रांसफॉर्म और मानकीकृत भी कर सकते हैं। मान लें कि हम US ZIP कोड के पहले पाँच अंकों को निकालने में रुचि रखते हैं। हम ^\d{5} रेगुलर एक्सप्रेशन का उपयोग करके ZIP कोड वाले फ़ील्ड की सभी घटनाओं को बदल सकते हैं।
टोकिनाइज़ेशन टेक्स्ट को अलग-अलग टोकन्स या शब्दों में बाँटने की प्रक्रिया है। रेगेक्स पैटर्न्स का उपयोग टेक्स्ट को टोकिनाइज़ करने के नियम परिभाषित करने के लिए किया जा सकता है। उदाहरण के लिए, आप \s+ का उपयोग श्वेत-अंतराल कैरेक्टर्स पर टेक्स्ट को विभाजित करने के लिए या \W+ का उपयोग विराम चिह्न जैसे नॉन-वर्ड कैरेक्टर्स पर विभाजित करने के लिए कर सकते हैं।
अतिरिक्त पैटर्न्स की जानकारी के लिए हमारा Python में रेगुलर एक्सप्रेशन चीट शीट देखें।
हालाँकि Excel में RegEx के लिए नैटिव सपोर्ट नहीं है, आप Windows के लिए VBA स्क्रिप्ट के जरिए अपना कस्टम डिफिनिशन लिखकर या Mac के लिए ऐड-इन्स सक्षम करके इसे सक्रिय कर सकते हैं। आइए देखें कि Excel में किसी कॉलम से टेक्स्ट निकालने के लिए रेगेक्स फ़ंक्शन कैसे सक्षम करें।
शुरू करने के लिए, Alt+F11 दबाकर Visual Basic Editor खोलें। आप Tools > Macro > Visual Basic Editor के जरिए भी वहाँ जा सकते हैं। फिर Insert पर क्लिक करें > Module।
निम्न फ़ंक्शन को मॉड्यूल में पेस्ट करें:
Public Function CustomRegExpExtract(inputText As String, regexPattern As String, Optional instanceNumber As Integer = 0, Optional matchCase As Boolean = True) As Variant
Dim textMatches() As String
Dim matchesIndex As Integer
Dim regex As Object
Dim matches As Object
On Error GoTo ErrHandler
CustomRegExpExtract = ""
' Create a regular expression object
Set regex = CreateObject("VBScript.RegExp")
regex.Pattern = regexPattern
regex.Global = True
regex.MultiLine = True
' Set case sensitivity
If matchCase Then
regex.IgnoreCase = False
Else
regex.IgnoreCase = True
End If
' Execute the regex pattern on the input text
Set matches = regex.Execute(inputText)
If matches.Count > 0 Then
If instanceNumber = 0 Then
' If instanceNumber is 0, return all matches in an array
ReDim textMatches(matches.Count - 1, 0)
For matchesIndex = 0 To matches.Count - 1
textMatches(matchesIndex, 0) = matches.Item(matchesIndex)
Next matchesIndex
CustomRegExpExtract = textMatches
Else
' If instanceNumber is specified, return the match at that instance
CustomRegExpExtract = matches.Item(instanceNumber - 1)
End If
End If
Exit Function
ErrHandler:
' Handle errors by returning an error value
CustomRegExpExtract = CVErr(xlErrValue)
End Function
' Modified from an original script by Patrick Matthews
फ़ंक्शन सेव करें और स्प्रेडशीट पर वापस जाएँ। अब वर्कबुक को मैक्रो-सक्षम फ़ाइल के रूप में .xlsm फ़ाइल एक्सटेंशन के साथ सेव करें।
Excel वर्कबुक में मैक्रोज़ सक्षम करके, अब आप CustomRegExpExtract फ़ंक्शन को Excel के किसी सामान्य फ़ंक्शन की तरह जटिल स्ट्रिंग पैटर्न्स को पार्स करने के लिए उपयोग कर सकते हैं, जहाँ:
inputText वह मूल स्ट्रिंग है जिसे पार्स करना है;regexPattern वह रेगुलर एक्सप्रेशन पैटर्न है जो inputText को पार्स करने के लिए उपयोग होता है;instanceNumber डिफ़ॉल्ट रूप से पैटर्न की सभी घटनाएँ लौटाता है, लेकिन लौटाने के लिए घटनाओं की संख्या निर्दिष्ट करने हेतु एक पूर्णांक दर्ज किया जा सकता है; औरmatchCase यह निर्दिष्ट करता है कि मैचिंग के दौरान टेक्स्ट के केस पर विचार करना है (TRUE या छोड़ा गया) या उसे नज़रअंदाज़ करना है (FALSE)।मान लें कि हम किसी फ़ील्ड से फोन नंबर निकालने में रुचि रखते हैं। हम रेगेक्स पैटर्न किसी भी सेल में टाइप कर सकते हैं (नीचे के मामले में, यह सेल A2 में है)। सेल A6 में आपका फ्री-फॉर्म स्ट्रिंग उदाहरण है, "Sophia, 1111111111"। सेल B6 में, हम टाइप करते हैं =CustomRegExpExtract(A6,$A$2)। यह फ़ंक्शन स्ट्रिंग को सेल A2 के रेगेक्स पैटर्न के साथ मैच कर फोन नंबर निकालता है और अपेक्षा के अनुरूप "1111111111" लौटाता है।

दुर्भाग्यवश, Mac OS MS VBScript Regular Expressions 5.5 लाइब्रेरी को नहीं पहचानता। Mac पर Excel में जटिल पैटर्न मैचिंग सक्षम करने के लिए दो विकल्प हैं: एडवांस्ड फ़िल्टर्स का उपयोग करें या पैकेज इंस्टॉल करें।

Excel में एडवांस्ड फ़िल्टर्स कई मानदंडों के सेट के आधार पर जटिल डेटा फ़िल्टरिंग संचालन करने में मदद करते हैं। बड़े डेटा सेट्स से निपटने पर यह फ़ीचर विशेष रूप से उपयोगी हो सकता है। Excel में एडवांस्ड फ़िल्टर का उपयोग इस प्रकार करें:
मान लीजिए आपके पास Name, Age, City कॉलम वाला डेटा सेट है। आप उन लोगों को फ़िल्टर करना चाहते हैं जो New York में 30 वर्ष से ऊपर हैं या Los Angeles में कोई भी हो। आपकी क्राइटेरिया रेंज कुछ इस तरह दिख सकती है:
|
Name |
Age |
City |
|
>30 |
New York |
|
|
Los Angeles |
कुछ ऐड-इन्स सीधे Excel में Insert टैब > Get Add-ins के माध्यम से मिल सकते हैं।
अन्य को बाहरी स्रोत से डाउनलोड करना पड़ता है और उनकी इंस्टॉलेशन निर्देशों का पालन करना होता है।
कुछ विचार करने योग्य बातें:
अधिकांश मामलों में, FIND, SEARCH, और REPLACE जैसी नैटिव फ़ंक्शंस Excel में आपकी 90% टेक्स्ट मैनिपुलेशन आवश्यकताओं को पूरा कर देंगी। हालाँकि, शेष 10% के लिए, जहाँ अधिक जटिल स्ट्रिंग पैटर्न शामिल होते हैं, रेगेक्स बेहद मददगार साबित हो सकता है। लोकप्रिय प्रोग्रामिंग भाषाओं का उपयोग करके रेगुलर एक्सप्रेशंस लागू करने के बारे में अधिक जानने के लिए, हमारे Regular Expressions in Python और Intermediate Regular Expressions in R पाठ्यक्रम देखें।
Excel से जुड़ी हर चीज़ पर तेज़ी से पकड़ बनाने के लिए हमारा Excel Fundamentals स्किल ट्रैक देखें, जो आपको इस टूल में प्रवीण बनने के लिए आवश्यक कौशलों से रूबरू कराता है।

दिन में डेटा विश्लेषक, रात में कथाकार। मुझे अपने ज्ञान का उपयोग करके डेटा साक्षरता की खाई को पाटना और नए लोगों को इस क्षेत्र में आने में मदद करना पसंद है। मेरा सिद्धांत है कि हर दिन सीखें, भले ही केवल 5 मिनट के लिए क्यों न हो!
आज ही अपनी Excel यात्रा शुरू करें!
कोर्स
कोर्स
कोर्स