सामग्री तालिका
यस ट्यूटोरियलमा, तपाइँले एक्सेलमा दिइएको ढाँचासँग मिल्ने सबस्ट्रिङहरू फेला पार्न र निकाल्न कसरी प्रयोग गर्ने भनेर सिक्नुहुनेछ।
माइक्रोसफ्ट एक्सेलले पाठ निकाल्नका लागि धेरै प्रकार्यहरू प्रदान गर्दछ। कक्षहरूबाट। ती प्रकार्यहरूले तपाइँको कार्यपत्रहरूमा धेरै स्ट्रिङ निकासी चुनौतीहरूको सामना गर्न सक्छन्। धेरै, तर सबै होइन। जब पाठ प्रकार्यहरू ठोकर खान्छ, नियमित अभिव्यक्तिहरू उद्धार गर्न आउँछन्। पर्खनुहोस्... Excel को कुनै RegEx प्रकार्य छैन! साँचो, कुनै इनबिल्ट प्रकार्यहरू छैनन्। तर त्यहाँ केहि छैन जसले तपाइँलाई तपाइँको आफ्नै प्रयोग गर्नबाट रोक्न सक्छ :)
Excel VBA Regex प्रकार्य स्ट्रिङहरू निकाल्न
तपाईँको Excel मा अनुकूलन Regex Extract प्रकार्य थप्नको लागि, VBA सम्पादकमा निम्न कोड टाँस्नुहोस्। VBA मा रेगुलर एक्सप्रेशन सक्षम गर्नको लागि, हामी बिल्ट-इन माइक्रोसफ्ट RegExp वस्तु प्रयोग गर्दैछौं।
सार्वजनिक प्रकार्य RegExpExtract(पाठको रूपमा स्ट्रिङ, स्ट्रिङको रूपमा ढाँचा, पूर्णांकको रूपमा वैकल्पिक instance_num = 0, वैकल्पिक match_case As Boolean = True) Dim text_matches() स्ट्रिङको रूपमा Dim matches_index त्रुटिमा पूर्णांकको रूपमा GoTo ErrHandl RegExpExtract = "" सेट गर्नुहोस् regex = CreateObject ( "VBScript.RegExp" ) regex.pattern = pattern regex.Global = True regex.MultiLine = True_Line = True_Line मिलाउनुहोस्। ignorecase = False अन्यथा regex.ignorecase = True End यदि सेट मिल्छ भने = regex.Execute(text) यदि 0 < matches.Count then If (0 = instance_num) त्यसपछि reDim text_matches(matches.Count - 1, 0) matches_index = 0 को लागिVBA RegExp, म तपाईंलाई अर्को भाग पढ्न प्रोत्साहित गर्दछु जसले धेरै शक्तिशाली .NET Regex प्रकार्यहरू छलफल गर्दछ।अनुकूलन .NET आधारित Regex प्रकार्य Excel मा पाठ निकाल्नको लागि
VBA RegExp कार्यहरू भन्दा फरक छ। कुनै पनि एक्सेल प्रयोगकर्ताद्वारा लेख्न सकिन्छ, .NET RegEx विकासकर्ताको क्षेत्र हो। Microsoft .NET Framework ले Perl 5 सँग मिल्दो पूर्ण-विशेषतायुक्त नियमित अभिव्यक्ति सिन्ट्याक्सलाई समर्थन गर्दछ। यस लेखले तपाइँलाई त्यस्ता प्रकार्यहरू कसरी लेख्ने भनेर सिकाउने छैन (म प्रोग्रामर होइन र कसरी गर्ने भन्ने बारे अलिकति पनि विचार छैन :)
मानक .NET RegEx इन्जिनद्वारा प्रशोधन गरिएका चार शक्तिशाली कार्यहरू पहिले नै हाम्रा विकासकर्ताहरूले लेखेका छन् र अल्टिमेट सुइटमा समावेश गरिएका छन्। तल, हामी एक्सेलमा पाठ निकाल्नका लागि विशेष रूपमा डिजाइन गरिएको प्रकार्यको केही व्यावहारिक प्रयोगहरू प्रदर्शन गर्नेछौं।
टिप। .NET Regex सिन्ट्याक्सको बारेमा जानकारीको लागि, कृपया .NET नियमित अभिव्यक्ति भाषालाई सन्दर्भ गर्नुहोस्।
रेगुलर एक्सप्रेशनहरू प्रयोग गरेर एक्सेलमा स्टिङहरू कसरी निकाल्ने
तपाईंले अल्टिमेट सुइटको नवीनतम संस्करण स्थापना गर्नुभएको छ भनी मान्दै, रेगुलर एक्सप्रेशनहरू प्रयोग गरेर पाठ निकाल्दै यी दुई चरणहरूमा उबलिन्छ:
- Ablebits Data ट्याबमा, Text समूहमा, Regex Tools मा क्लिक गर्नुहोस्।
- Regex Tools फलकमा, स्रोत डेटा चयन गर्नुहोस्, आफ्नो Regex ढाँचा प्रविष्ट गर्नुहोस्, र Extract विकल्प छान्नुहोस्। नतिजा अनुकूलन प्रकार्यको रूपमा प्राप्त गर्न, मान होइन, चयन गर्नुहोस् सूत्रको रूपमा घुसाउनुहोस् जाँच गर्नुहोस्।बक्स। सकिएपछि, Extract बटनमा क्लिक गर्नुहोस्।
परिणामहरू तपाईंको मूल डाटाको दायाँतिर नयाँ स्तम्भमा देखा पर्नेछ:
AblebitsRegexExtract सिन्ट्याक्स
हाम्रो अनुकूलन प्रकार्यमा निम्न वाक्य रचना छ:
AblebitsRegexExtract(reference, regular_expression)कहाँ:
- संदर्भ (आवश्यक) - स्रोत स्ट्रिङ समावेश कक्षको सन्दर्भ। Regular_expression (आवश्यक) - मिलाउनको लागि regex ढाँचा।
महत्त्वपूर्ण नोट! यस प्रकार्यले एक्सेलका लागि अल्टिमेट सुइट स्थापना भएका मेसिनहरूमा मात्र काम गर्दछ।
उपयोग नोटहरू
तपाईको सिकाइ कर्भलाई सहज बनाउन र तपाइँको अनुभवलाई अझ रमाइलो बनाउन, कृपया यी बिन्दुहरूमा ध्यान दिनुहोस्:
- सूत्र सिर्जना गर्न, तपाइँ हाम्रो Regex उपकरणहरू , वा Excel को Insert function संवाद प्रयोग गर्न सक्नुहुन्छ, वा सेलमा पूरा प्रकार्य नाम टाइप गर्नुहोस्। एक पटक सूत्र सम्मिलित भएपछि, तपाईंले यसलाई कुनै पनि नेटिभ सूत्र जस्तै व्यवस्थापन गर्न सक्नुहुन्छ (सम्पादन, प्रतिलिपि वा सार्न)।
- तपाईले Regex उपकरण फलकमा प्रविष्ट गर्नुभएको ढाँचा दोस्रो आर्गुमेन्टमा जान्छ। यो पनि एक अलग कक्ष मा नियमित अभिव्यक्ति राख्न सम्भव छ। यस अवस्थामा, दोस्रो तर्कको लागि केवल सेल सन्दर्भ प्रयोग गर्नुहोस्।
- प्रकार्यले पहिलो फेला परेको मिलान निकाल्छ।
- पूर्वनिर्धारित रूपमा, प्रकार्य केस हो। -संवेदनशील । केस-संवेदनशील मिलानको लागि, (?i) ढाँचा प्रयोग गर्नुहोस्।
- यदि मिल्दो फेला परेन भने, #N/A त्रुटि होफिर्ता गरियो।
दुई क्यारेक्टरहरू बीचको स्ट्रिङ निकाल्न Regex
दुई क्यारेक्टरहरू बीचको टेक्स्ट प्राप्त गर्न, तपाईँले या त क्याप्चरिङ समूह वा लुक-अराउन्ड प्रयोग गर्न सक्नुहुन्छ।
हामी तपाईं कोष्ठकहरू बीचको पाठ निकाल्न खोज्दै हुनुहुन्छ भन्नुहोस्। क्याप्चर गर्ने समूह सबैभन्दा सजिलो तरिका हो।
ढाँचा 1 : \[(.*?)\]
पछाडि र अगाडि हेर्दा, नतिजा ठ्याक्कै हुनेछ। समान।
ढाँचा 2 : (?<=\[)(.*?)(?=\])
कृपया ध्यान दिनुहोस् कि हाम्रो कब्जा गर्ने समूह (.*?) ले दुई कोष्ठकहरू बीचको पाठको लागि आलसी खोज गर्छ - पहिलो [ देखि पहिलो ] सम्म। प्रश्न चिन्ह बिना क्याप्चर गर्ने समूहले लोभी खोज गर्छ र पहिलो [ अन्तिम सम्म] सबै कुरा क्याप्चर गर्छ।
A2 मा ढाँचाको साथ, सूत्र यसरी जान्छ। निम्नानुसार:
=AblebitsRegexExtract(A5, $A$2)
सबै मिलानहरू कसरी प्राप्त गर्ने
पहिले नै उल्लेख गरिएझैं, AblebitsRegexExtract प्रकार्यले एउटा मिलान मात्र निकाल्न सक्छ। सबै मिलानहरू प्राप्त गर्न, तपाईंले VBA प्रकार्य प्रयोग गर्न सक्नुहुन्छ जुन हामीले पहिले छलफल गरेका छौं। यद्यपि, त्यहाँ एउटा चेतावनी छ - VBA RegExp ले समूहहरू क्याप्चर गर्न समर्थन गर्दैन, त्यसैले माथिको ढाँचाले "सीमा" क्यारेक्टरहरू पनि फर्काउनेछ, हाम्रो केसमा कोष्ठकहरू।
=TEXTJOIN(" ", TRUE, RegExpExtract(A5, $A$2))
मुक्त हुन कोष्ठकहरूको, तिनीहरूलाई यो सूत्र प्रयोग गरेर खाली स्ट्रिङहरू ("") को साथ बदल्नुहोस्:
=SUBSTITUTE(SUBSTITUTE(TEXTJOIN(", ", TRUE, RegExpExtract(A5, $A$2)), "]", ""),"[","")
राम्रो पढ्नको लागि, हामीले सीमांकनको लागि अल्पविराम प्रयोग गर्दैछौं।
दुई स्ट्रिङहरू बीचको पाठ निकाल्न Regex
हामीले काम गरेको दृष्टिकोणयसलाई शाब्दिक रूपमा व्याख्या गर्नुहोस्)।
A2 मा कुन नियमित अभिव्यक्ति प्रविष्ट गरिएको छ भन्ने आधारमा, तलको सूत्रले फरक परिणामहरू उत्पादन गर्नेछ:
=AblebitsRegexExtract(A5, $A$2)
Regex पूरा डोमेन नाम सबै सबडोमेनहरू सहित निकाल्न:
Regex सेकेन्ड-लेभल डोमेन सबडोमेन बिना निकाल्न:
रेगुलर एक्सप्रेशन प्रयोग गरेर एक्सेलमा पाठका भागहरू निकाल्ने तरिका यही हो। पढ्नुभएकोमा म तपाईंलाई धन्यवाद दिन्छु र अर्को हप्ता हाम्रो ब्लगमा तपाईंलाई भेट्नको लागि तत्पर छु!
उपलब्ध डाउनलोडहरू
Excel Regex Extract उदाहरणहरू (.xlsm फाइल)
Ultimate Suite परीक्षण संस्करण (.exe फाइल)
\b(०?[0-9]matches.Count - 1 text_matches(matches_index, 0) = matches.Item(matches_index) Next matches_index RegExpExtract = text_matches अन्यथा RegExpExtract = matches.Item(instance_num - 1) End If End यदि Exit Function:VrrxErrvEndExalFunction = RegExlErrVDLयदि तपाइँसँग VBA सँग थोरै अनुभव छ भने, एक चरण-दर-चरण प्रयोगकर्ता गाइड उपयोगी साबित हुन सक्छ: एक्सेलमा VBA कोड कसरी घुसाउने।
नोट। प्रकार्यले काम गर्नको लागि, आफ्नो फाइललाई म्याक्रो-सक्षम कार्यपुस्तिका (.xlsm) को रूपमा बचत गर्न निश्चित हुनुहोस्।
RegExpExtract सिन्ट्याक्स
RegExpExtract प्रकार्यले रेगुलर एक्सप्रेशनसँग मेल खाने र एक वा सबै मिल्दोहरू निकाल्ने मानहरूको लागि इनपुट स्ट्रिङ खोज्छ।
प्रकार्यमा निम्न सिन्ट्याक्स छ :
RegExpExtract(text, pattern, [instance_num], [match_case])कहाँ:
- Text (आवश्यक) - खोज्नको लागि पाठ स्ट्रिङ।
- ढाँचा (आवश्यक) - मेल खाने नियमित अभिव्यक्ति। सूत्रमा सिधै आपूर्ति गर्दा, ढाँचालाई दोहोरो उद्धरण चिन्हहरूमा संलग्न गरिनुपर्छ।
- Instance_num (वैकल्पिक) - कुन उदाहरण निकाल्ने भन्ने संकेत गर्ने क्रम संख्या। यदि हटाइयो भने, फेला परेका सबै मिल्दोहरू (पूर्वनिर्धारित) फर्काउँछ।
- Match_case (वैकल्पिक) - पाठ केससँग मेल खाने वा बेवास्ता गर्ने भनेर परिभाषित गर्दछ। यदि TRUE वा हटाइयो (पूर्वनिर्धारित), केस-संवेदनशील मिलान प्रदर्शन गरिन्छ; यदि FALSE - केस-संवेदनशील।
कार्यक्रमले Excel 365, Excel 2021, Excel को सबै संस्करणहरूमा काम गर्छ।2019, Excel 2016, Excel 2013 र Excel 2010।
RegExpExtract को बारेमा तपाईंले जान्नुपर्ने ४ कुराहरू
तपाईँको Excel मा प्रकार्यलाई प्रभावकारी रूपमा प्रयोग गर्न, ध्यान दिनु पर्ने केही महत्त्वपूर्ण कुराहरू छन्:
- पूर्वनिर्धारित रूपमा, प्रकार्यले यस उदाहरणमा देखाइएका छिमेकी कक्षहरूमा सबै भेटिएका मिलानहरू फर्काउँछ। एक विशिष्ट घटना प्राप्त गर्न, instance_num तर्कमा सम्बन्धित नम्बर आपूर्ति गर्नुहोस्।
- पूर्वनिर्धारित रूपमा, प्रकार्य केस-संवेदनशील हो। केस-संवेदनशील मिलानको लागि, match_case तर्कलाई FALSE मा सेट गर्नुहोस्। VBA सीमितताहरूको कारणले, केस-संवेदनशील निर्माण (?i) ले काम गर्दैन।
- यदि वैध ढाँचा फेला परेन , प्रकार्यले केहि फर्काउँदैन (खाली स्ट्रिङ)।
- यदि ढाँचा अमान्य छ , #VALUE! त्रुटि देखापर्छ।
तपाईंले आफ्नो कार्यपत्रमा यो अनुकूलन प्रकार्य प्रयोग गर्न सुरु गर्नु अघि, तपाईंले यो के सक्षम छ भनेर बुझ्न आवश्यक छ, हैन? तलका उदाहरणहरूले केही सामान्य प्रयोगका केसहरूलाई समेट्छ र Dynamic Array Excel (Microsoft 365 र Excel 2021) र परम्परागत Excel (2019 र पुराना संस्करणहरूमा) व्यवहार किन फरक हुन सक्छ भनेर वर्णन गर्दछ।
नोट। बाहिर regex उदाहरणहरू परी सरल डेटा सेटहरूको लागि लेखिएका छन्। हामी ग्यारेन्टी दिन सक्दैनौं कि तिनीहरूले तपाईंको वास्तविक कार्यपत्रहरूमा निर्दोष रूपमा काम गर्नेछन्। रेगेक्ससँग अनुभव भएकाहरूले नियमित अभिव्यक्तिहरू लेख्नु पूर्णताको लागि कहिल्यै अन्त्य नहुने बाटो हो भन्ने कुरामा सहमत हुनेछन् - लगभग सधैं त्यहाँ बनाउने तरिका हो।यो थप सुरुचिपूर्ण वा इनपुट डेटाको फराकिलो दायरा ह्यान्डल गर्न सक्षम छ।
स्ट्रिङबाट नम्बर निकाल्नको लागि Regex
"सरलबाट जटिलमा" सिकाउने आधारभूत अधिकतमलाई पछ्याउँदै, हामी एकदमै सादा केसबाट सुरु गर्नेछौं: स्ट्रिङबाट सङ्ख्या निकाल्दै।
द तपाइँको लागि पहिलो कुरा कुन नम्बर पुन: प्राप्त गर्ने हो: पहिलो, अन्तिम, विशिष्ट घटना वा सबै संख्याहरू।
पहिलो नम्बर निकाल्नुहोस्
यो regex प्राप्त गर्न सक्ने जति सरल छ। \d को अर्थ ० देखि ९ सम्मको कुनै पनि अंक, र + को अर्थ एक वा धेरै पटक, हाम्रो नियमित अभिव्यक्तिले यो फारम लिन्छ:
ढाँचा : \d+
सेट instance_num to 1 र तपाईंले इच्छित परिणाम प्राप्त गर्नुहुनेछ:
=RegExpExtract(A5, "\d+", 1)
जहाँ A5 मूल स्ट्रिङ हो।
सुविधाको लागि, तपाईंले इनपुट गर्न सक्नुहुन्छ पूर्वनिर्धारित कक्षमा ढाँचा ($A$2) र $ चिन्हको साथ यसको ठेगाना लक गर्नुहोस्:
=RegExpExtract(A5, $A$2, 1)
अन्तिम नम्बर प्राप्त गर्नुहोस्
स्ट्रिङमा अन्तिम नम्बर निकाल्न , यहाँ प्रयोग गर्ने ढाँचा छ:
ढाँचा : (\d+)(?!.*\d)
मानव भाषामा अनुवाद गरिएको , यसले भन्छ: कुनै नम्बर फेला पार्नुहोस् जुन कुनै अन्य नम्बरले फलो नगरेको (कहीँ पनि, तुरुन्तै होइन)। यसलाई व्यक्त गर्नको लागि, हामीले नकारात्मक लुकहेड (?!.*\d) प्रयोग गर्दैछौं, जसको अर्थ ढाँचाको दायाँ तिर अन्य कुनै पनि अंक (\d) हुनु हुँदैन, यो भन्दा अगाडि जतिसुकै अन्य क्यारेक्टरहरू छन्।<3
=RegExpExtract(A5, "(\d+)(?!.*\d)")
सुझावहरू:
- विशिष्ट घटना प्राप्त गर्न, ढाँचा र उपयुक्त सिरियलको लागि \d+ प्रयोग गर्नुहोस्। instance_num को लागि नम्बर।
- सबै नम्बरहरू निकाल्ने सूत्र अर्को उदाहरणमा छलफल गरिएको छ।
सबै मिल्दोहरू निकाल्नको लागि Regex
हाम्रो उदाहरणलाई अलिकति अगाडि बढाउँदै, मान्नुहोस् कि तपाइँ एक स्ट्रिङबाट सबै संख्याहरू प्राप्त गर्न चाहनुहुन्छ, एक मात्र होइन।
तपाइँले याद गर्न सक्नुहुन्छ, निकालिएका मिलानहरूको संख्या वैकल्पिक <1 द्वारा नियन्त्रण गरिन्छ।>instance_num तर्क। पूर्वनिर्धारित सबै मिल्दोजुल्दो हो, त्यसैले तपाईले यो प्यारामिटरलाई मात्र छोड्नुहुन्छ:
=RegExpExtract(A2, "\d+")
सूत्रले एकल कक्षको लागि राम्रोसँग काम गर्दछ, तर व्यवहार डायनामिक एरे एक्सेल र गैर-गतिशील संस्करणहरूमा फरक हुन्छ।
Excel 365 र Excel 2021
गतिशील एरेहरूको लागि समर्थनको कारणले, एक नियमित सूत्र स्वचालित रूपमा सबै गणना गरिएका परिणामहरू प्रदर्शन गर्न आवश्यक पर्ने धेरै कक्षहरूमा फैलिन्छ। Excel को सन्दर्भमा, यसलाई स्पिल गरिएको दायरा भनिन्छ:
Excel 2019 र कम
पूर्व-गतिशील एक्सेलमा, माथिको सूत्रले केवल एक मिल्दो फर्काउँछ। धेरै मिल्दोहरू प्राप्त गर्न, तपाईंले यसलाई एरे सूत्र बनाउन आवश्यक छ। यसको लागि, कक्षहरूको दायरा चयन गर्नुहोस्, सूत्र टाइप गर्नुहोस्, र यसलाई पूरा गर्न Ctrl + Shift + Enter थिच्नुहोस्।
यस दृष्टिकोणको नकारात्मक पक्ष "अतिरिक्त कक्षहरू" मा देखा पर्ने #N/A त्रुटिहरूको गुच्छा हो। । अफसोस, यसको बारेमा केहि गर्न सकिँदैन (न त IFERROR न IFNA ले यसलाई ठीक गर्न सक्छ, अफसोस)।
एउटै कक्षमा सबै मिलानहरू निकाल्नुहोस्
डेटाको स्तम्भ प्रशोधन गर्दा, माथिको दृष्टिकोणले स्पष्ट रूपमा काम गर्दैन। यस अवस्थामा, एक आदर्श समाधानएउटै सेलमा सबै खेलहरू फर्काउनेछ। यो गर्नको लागि, RegExpExtract को नतिजाहरू TEXTJOIN प्रकार्यमा सेवा गर्नुहोस् र तिनीहरूलाई आफूलाई मनपर्ने कुनै पनि डिलिमिटरसँग अलग गर्नुहोस्, अल्पविराम र स्पेस भन्नुहोस्:
=TEXTJOIN(", ", TRUE, RegExpExtract(A5, "\d+"))
नोट। किनभने TEXTJOIN प्रकार्य Microsoft 365, Excel 2021 र Excel 2019 को लागि Excel मा मात्र उपलब्ध छ, सूत्रले पुरानो संस्करणहरूमा काम गर्दैन।
स्ट्रिङबाट पाठ निकाल्न Regex
बाट पाठ निकाल्दै एक्सेलमा अल्फान्यूमेरिक स्ट्रिङ एकदमै चुनौतीपूर्ण कार्य हो। regex संग, यो पाई जस्तै सजिलो हुन्छ। अंक नभएका सबै कुरा मिलाउन केवल नकारात्मक वर्ग प्रयोग गर्नुहोस्।
ढाँचा : [^\d]+
व्यक्तिगत कक्षहरूमा सबस्ट्रिङहरू प्राप्त गर्न (स्पिल दायरा) , सूत्र हो:
=RegExpExtract(A5, "[^\d]+")
एउटै सेलमा सबै मिलानहरू आउटपुट गर्न, TEXTJOIN मा RegExpExtract प्रकार्यलाई यसरी नेस्ट गर्नुहोस्:
=TEXTJOIN("", TRUE, RegExpExtract(A5, "[^\d]+"))
मा Regex स्ट्रिङबाट इमेल ठेगाना निकाल्नुहोस्
विभिन्न जानकारी भएको स्ट्रिङबाट इमेल ठेगाना निकाल्नको लागि, इमेल ठेगानाको संरचनालाई नक्कल गर्ने नियमित अभिव्यक्ति लेख्नुहोस्।
ढाँचा : [\w\.\-]+@[A-Za-z0-9\.\-]+\। , यहाँ हामीले के पाउँछौं:
- [\w\.\-]+ एक प्रयोगकर्ता नाम हो जसमा १ वा बढी अल्फान्यूमेरिक क्यारेक्टरहरू, अन्डरस्कोरहरू, डटहरू र हाइफनहरू समावेश हुन सक्छन्।
- @ प्रतीक >उप-डोमेनहरू)। यहाँ अन्डरस्कोरहरूलाई अनुमति छैन, त्यसैले कुनै अक्षर, अंक वा अन्डरस्कोरसँग मेल खाने \w को सट्टा ३ फरक क्यारेक्टर सेटहरू (जस्तै A-Z a-z र 0-9) प्रयोग गरिन्छ।
- \.[A-Za-z ]{2,24} एक शीर्ष-स्तर डोमेन हो। अप्परकेस र लोअरकेस अक्षरहरू पछि थोप्ला मिलेर बनेको हुन्छ। धेरै जसो शीर्ष-स्तर डोमेनहरू 3-अक्षर लामो हुन्छन् (जस्तै .com .org, .edu, आदि), तर सिद्धान्तमा यसमा 2 देखि 24 अक्षरहरू हुन सक्छन् (सबैभन्दा लामो दर्ता गरिएको TLD)।
स्ट्रिङ A5 मा छ र ढाँचा A2 मा छ भनी मान्दै, इमेल ठेगाना निकाल्ने सूत्र हो:
=RegExpExtract(A5, $A$2)
Regex इमेलबाट डोमेन निकाल्न
जब यो इमेल डोमेन एक्स्ट्र्याक्ट गर्न आउछ, दिमागमा आउने पहिलो विचार भनेको @ क्यारेक्टरलाई तुरुन्तै फलो गर्ने पाठ फेला पार्न क्याप्चरिङ समूह प्रयोग गर्नु हो।
प्याटर्न : @([A-Za-z0 -9\.\-]+\। तपाईंले यो नतिजा प्राप्त गर्नुहुनेछ:
क्लासिक रेगुलर एक्सप्रेशनको साथ, क्याप्चरिङ समूह बाहिरको कुनै पनि कुरा एक्स्ट्र्यासनमा समावेश गरिएको छैन। कसैलाई थाहा छैन किन VBA RegEx ले फरक तरिकाले काम गर्छ र "@" लाई पनि क्याप्चर गर्छ। यसबाट छुटकारा पाउनको लागि, तपाईंले परिणामबाट पहिलो क्यारेक्टरलाई खाली स्ट्रिङले प्रतिस्थापन गरेर हटाउन सक्नुहुन्छ।
=REPLACE(RegExpExtract(A5, "@([a-z\d][a-z\d\-\.]*\.[a-z]{2,})", 1, FALSE), 1, 1, "")
फोन नम्बरहरू निकाल्न नियमित अभिव्यक्ति
फोन नम्बरहरू धेरै फरक तरिकामा लेख्न सकिन्छ, त्यसैले सबै अन्तर्गत काम गर्ने समाधानको साथ आउन असम्भव छ।(\d{4}स्ट्रिङबाट
मिति निकाल्नको लागि नियमित अभिव्यक्ति स्ट्रिङ भित्र मिति देखिने ढाँचामा निर्भर गर्दछ। उदाहरणका लागि:
१/१/२१ वा ०१/०१/२०२१ जस्ता मितिहरू निकाल्नको लागि, रेगेक्स हो: \d{1,2}\/\d{1,2}\/(\d {4}परिस्थितिहरू। जे होस्, तपाईले आफ्नो डेटासेटमा प्रयोग गरिएका सबै ढाँचाहरू लेख्न सक्नुहुन्छ र तिनीहरूलाई मिलाउन प्रयास गर्नुहोस्।
यस उदाहरणको लागि, हामी यी ढाँचाहरू मध्ये कुनै पनि फोन नम्बरहरू निकाल्ने रेगेक्स सिर्जना गर्न जाँदैछौं:
(123) 345-6789 (123) 345 6789 (123)3456789 123- 345-6789 | 123.345.6789 123 345 6789 1233456789 |
- पहिलो भाग \(?\d{3} शून्य वा एक ओपनिङ कोष्ठकसँग मेल खान्छ त्यसपछि तीन अंकहरू d{3}।
- [-\। \)]* भागको अर्थ वर्गाकार कोष्ठकमा ० वा बढी पटक देखिने कुनै पनि वर्ण हो: हाइफन, अवधि, स्पेस वा बन्द कोष्ठक।
- अर्को, हामीसँग फेरि तीन अंकहरू छन् d{3} पछि कुनै हाइफन, अवधि वा स्पेस [-\। ]? 0 वा 1 पटक देखा पर्दछ।
- त्यसपछि, त्यहाँ चार अंकको समूह \d{4} हुन्छ।
- अन्तमा, त्यहाँ एक शब्द सीमा हुन्छ \b हामी फोन नम्बर हो भनेर परिभाषित गर्दछ। खोज्नु ठूलो संख्याको भाग हुन सक्दैन।
पूर्ण सूत्रले यो आकार लिन्छ:
=RegExpExtract(A5, "\(?\d{3}[-\. \)]*\d{3}[-\. ]?\d{4}\b")
कृपया माथिको regex ले केही फर्काउन सक्छ भनेर सचेत रहनुहोस्। गलत-सकारात्मक परिणामहरू जस्तै 123) 456 7899 वा (123 456 7899। तलको संस्करणले यी समस्याहरू समाधान गर्दछ। यद्यपि, यो वाक्य रचना VBA RegExp प्रकार्यहरूमा मात्र काम गर्दछ, क्लासिक नियमित अभिव्यक्तिहरूमा होइन।
ढाँचा : (\(\d{3}\)दुई क्यारेक्टरहरू बीचको पाठ निकाल्नको लागि out ले दुई स्ट्रिङहरू बीचको पाठ निकाल्नका लागि पनि काम गर्नेछ।
उदाहरणका लागि, "test 1" र "test 2" बीचको सबै कुरा प्राप्त गर्न, निम्न नियमित अभिव्यक्ति प्रयोग गर्नुहोस्।
ढाँचा : परीक्षण 1(.*?)परीक्षण 2
पूर्ण सूत्र हो:
=AblebitsRegexExtract(A5, "test 1(.*?)test 2")
URL बाट डोमेन निकाल्न Regex
नियमित अभिव्यक्तिको साथमा पनि, URL बाट डोमेन नामहरू निकाल्नु कुनै तुच्छ काम होइन। चाल गर्ने मुख्य तत्व गैर-कैप्चरिंग समूह हो। तपाईंको अन्तिम लक्ष्यमा निर्भर गर्दै, तलका regexes मध्ये एउटा छान्नुहोस्।
उपडोमेनहरू सहित पूर्ण डोमेन नाम प्राप्त गर्न
ढाँचा : (?: https?\: