Excel मा नियमित अभिव्यक्ति (RegExp) को साथ पाठ पार्स गर्नुहोस्

Excel मा नियमित अभिव्यक्ति (RegExp) को साथ पाठ पार्स गर्नुहोस्Excel मा पाठ संग काम गर्दा सबैभन्दा समय-उपभोग र निराशाजनक कार्यहरू मध्ये एक हो पार्स गर्दै - अल्फान्यूमेरिक "पोरिज" लाई कम्पोनेन्टहरूमा पार्स गर्दै र त्यसबाट हामीलाई चाहिने टुक्राहरू निकाल्दै। उदाहरणका लागि:

  • ठेगानाबाट जिप कोड निकाल्दै (यदि जिप कोड सधैं सुरुमा हुन्छ भने राम्रो हुन्छ, तर यदि यो होइन भने के हुन्छ?)
  • बैंक स्टेटमेन्टमा भुक्तानीको विवरणबाट बीजकको नम्बर र मिति पत्ता लगाउने
  • प्रतिपक्षहरूको सूचीमा रहेका कम्पनीहरूको मोटली विवरणबाट TIN को निकासी
  • विवरणमा कार नम्बर वा लेख नम्बर खोज्नुहोस्, आदि।

सामान्यतया त्यस्ता अवस्थाहरूमा, पाठमा म्यानुअल रूपमा आधा घण्टाको डरलाग्दो छनोट पछि, विचारहरू दिमागमा आउन थाल्छन् कुनै न कुनै रूपमा यो प्रक्रियालाई स्वचालित गर्ने (विशेष गरी यदि त्यहाँ धेरै डाटा छ)। त्यहाँ धेरै समाधानहरू छन् र जटिलता-दक्षताको विभिन्न डिग्रीहरू छन्:

  • प्रयोग निर्मित एक्सेल पाठ प्रकार्यहरू खोजी-काट-गोंद पाठ: LEVSIMV (बायाँ), सही (ठीक), PSTR (मध्य), STsEPIT (CONCATENATE) र यसको एनालॉगहरू, COMBINE (JOINTEXT), अचूक (ठीक) आदि। यो विधि राम्रो छ यदि पाठमा स्पष्ट तर्क छ (उदाहरणका लागि, अनुक्रमणिका सधैं ठेगानाको सुरुमा हुन्छ)। अन्यथा, सूत्रहरू धेरै जटिल हुन्छन् र, कहिलेकाहीँ, यो एरे सूत्रहरूमा पनि आउँछ, जुन ठूला टेबलहरूमा धेरै ढिलो हुन्छ।
  • प्रयोग पाठ समानता अपरेटर जस्तै अनुकूलन म्याक्रो प्रकार्यमा लपेटिएको भिजुअल बेसिकबाट। यसले तपाईंलाई वाइल्डकार्ड क्यारेक्टरहरू (*, #,?, आदि) प्रयोग गरेर थप लचिलो खोज कार्यान्वयन गर्न अनुमति दिन्छ, दुर्भाग्यवश, यो उपकरणले पाठबाट इच्छित सबस्ट्रिङ निकाल्न सक्दैन - यो यसमा समावेश छ कि छैन भनेर मात्र जाँच गर्नुहोस्।

माथिको बाहेक, त्यहाँ अर्को दृष्टिकोण छ जुन पेशेवर प्रोग्रामरहरू, वेब विकासकर्ताहरू र अन्य प्राविधिकहरूको साँघुरो सर्कलहरूमा धेरै राम्रोसँग परिचित छ - यो हो। नियमित अभिव्यक्ति (नियमित अभिव्यक्ति = RegExp = "regexps" = "नियमित")। सरल भाषामा भन्नुपर्दा, RegExp एउटा भाषा हो जहाँ पाठमा आवश्यक सबस्ट्रिङहरू खोज्न, तिनीहरूलाई निकाल्न वा अन्य पाठसँग प्रतिस्थापन गर्न विशेष वर्ण र नियमहरू प्रयोग गरिन्छ।। नियमित अभिव्यक्तिहरू एक धेरै शक्तिशाली र सुन्दर उपकरण हो जसले परिमाणको अर्डरद्वारा पाठसँग काम गर्ने अन्य सबै तरिकाहरू पार गर्दछ। धेरै प्रोग्रामिङ भाषाहरू (C#, PHP, Perl, JavaScript…) र पाठ सम्पादकहरू (Word, Notepad++…) ले नियमित अभिव्यक्तिहरूलाई समर्थन गर्दछ।

दुर्भाग्यवश Microsoft Excel सँग बक्स बाहिर RegExp समर्थन छैन, तर यो सजिलैसँग VBA सँग फिक्स गर्न सकिन्छ। ट्याबबाट भिजुअल बेसिक सम्पादक खोल्नुहोस् विकासकर्ता (विकासकर्ता) वा किबोर्ड सर्टकट alt+F11। त्यसपछि मेनु मार्फत नयाँ मोड्युल घुसाउनुहोस् घुसाउनुहोस् - मोड्युल र त्यहाँ निम्न म्याक्रो प्रकार्यको पाठ प्रतिलिपि गर्नुहोस्:

सार्वजनिक कार्य RegExpExtract(पाठ स्ट्रिङको रूपमा, स्ट्रिङको रूपमा ढाँचा, पूर्णांकको रूपमा ऐच्छिक वस्तु = 1) त्रुटिमा स्ट्रिङको रूपमा GoTo ErrHandl सेट गर्नुहोस् regex = CreateObject("VBScript.RegExp") regex.Pattern = Pattern regex.Global = यदि True। (पाठ) त्यसपछि मिलानहरू सेट गर्नुहोस् = regex.Execute(Text) RegExpExtract = matches.Item(Item - 1) Exit Function End यदि ErrHandl: RegExpExtract = CVErr(xlErrValue) अन्त्य प्रकार्य  

हामी अब भिजुअल बेसिक सम्पादक बन्द गर्न सक्छौं र हाम्रो नयाँ सुविधा प्रयोग गर्न एक्सेलमा फर्कन सक्छौं। यसको वाक्य रचना निम्नानुसार छ:

=RegExpExtract(txt; ढाँचा; वस्तु)

जहाँ

  • txt - हामीले जाँच गरिरहनुभएको पाठ भएको सेल र जसबाट हामीले आवश्यक पर्ने सबस्ट्रिङ निकाल्न चाहन्छौं
  • ढाँचा - सबस्ट्रिङ खोजको लागि मास्क (ढाँचा)
  • वस्तु - निकालिने सबस्ट्रिङको अनुक्रम संख्या, यदि त्यहाँ धेरै छन् भने (यदि निर्दिष्ट गरिएको छैन भने, त्यसपछि पहिलो घटना प्रदर्शित हुन्छ)

यहाँ सबैभन्दा चाखलाग्दो कुरा, निस्सन्देह, ढाँचा हो - RegExp को "भाषामा" विशेष क्यारेक्टरहरूको टेम्प्लेट स्ट्रिङ, जसले हामी वास्तवमा के र कहाँ फेला पार्न चाहन्छौं भनेर निर्दिष्ट गर्दछ। तपाईलाई सुरु गर्नका लागि यहाँ सबैभन्दा आधारभूत कुराहरू छन्:

 ढाँचा  विवरण
 . सरल बिन्दु हो। यो निर्दिष्ट स्थितिमा ढाँचामा कुनै पनि क्यारेक्टरसँग मेल खान्छ।
 s कुनै पनि क्यारेक्टर जुन स्पेस जस्तो देखिन्छ (स्पेस, ट्याब, वा लाइन ब्रेक)।
 S
अघिल्लो ढाँचाको एन्टी-भेरिएन्ट, अर्थात् कुनै पनि गैर-सेतो ठाउँ वर्ण।
 d
कुनै पनि नम्बर
 D
अघिल्लोको एक विरोधी संस्करण, अर्थात् कुनै पनि अंक होइन
 w कुनै पनि ल्याटिन वर्ण (AZ), अंक, वा अन्डरस्कोर
 W अघिल्लोको एक विरोधी संस्करण, अर्थात ल्याटिन होइन, नम्बर होइन र अन्डरस्कोर होइन।
[वर्ण] वर्ग कोष्ठकहरूमा, तपाइँ पाठमा निर्दिष्ट स्थानमा अनुमति दिइएको एक वा बढी वर्णहरू निर्दिष्ट गर्न सक्नुहुन्छ। उदाहरणका लागि कला कुनै पनि शब्दहरू मिल्नेछ: तालिका or कुर्सी.

तपाईंले वर्णहरू पनि गणना गर्न सक्नुहुन्न, तर तिनीहरूलाई हाइफनद्वारा छुट्याएको दायराको रूपमा सेट गर्नुहोस्, अर्थात् [ABDCDEF] लेख्न [एएफ]। वा यसको सट्टा [4567] परिचय [-४ ७]। उदाहरणका लागि, सबै सिरिलिक क्यारेक्टरहरू निर्दिष्ट गर्न, तपाइँ टेम्प्लेट प्रयोग गर्न सक्नुहुन्छ [a-yaA-YoYo].

[^वर्ण] यदि खुला वर्ग कोष्ठक पछि प्रतीक "ढक्कन" थप्नुहोस् ^, त्यसपछि सेटले विपरीत अर्थ प्राप्त गर्नेछ - पाठमा निर्दिष्ट स्थानमा, सूचीबद्ध गरिएका बाहेक सबै वर्णहरूलाई अनुमति दिइनेछ। हो, टेम्प्लेट [^ЖМ]ut भेट्टाउने छु मार्ग or उपस्थिति or भूल, तर होइन डरलाग्दो or मटउदाहरण को लागी
 | बुलियन अपरेटर OR (OR) कुनै पनि निर्दिष्ट मापदण्डको लागि जाँच गर्न। उदाहरणका लागि (बाटबृहस्पति |पनि | इनभ्वाइस) कुनै पनि निर्दिष्ट शब्दहरूको लागि पाठ खोजी गर्नेछ। सामान्यतया, विकल्पहरूको सेट कोष्ठकहरूमा संलग्न गरिएको छ।
 ^ रेखाको सुरुवात
 $ रेखाको अन्त्य
 b शब्दको अन्त्य

यदि हामी क्यारेक्टरहरूको निश्चित संख्या खोज्दै छौं, उदाहरणका लागि, छ-अङ्कको हुलाक कोड वा सबै तीन-अक्षर उत्पादन कोडहरू, तब हामी उद्धारमा आउँछौं। परिमाणक or परिमाणक विशेष अभिव्यक्तिहरू हुन् जसले खोजी गर्नुपर्ने क्यारेक्टरहरूको संख्या निर्दिष्ट गर्दछ। क्वान्टीफायरहरू पहिले आउने क्यारेक्टरमा लागू हुन्छन्:

  क्वान्टर  विवरण
 ? शून्य वा एक घटना। उदाहरणका लागि .? कुनै एक वर्ण वा यसको अनुपस्थिति को अर्थ हुनेछ।
 + एक वा बढी प्रविष्टिहरू। उदाहरणका लागि d+ अंकहरूको कुनै पनि सङ्ख्या (अर्थात् ० र अनन्तता बीचको कुनै पनि सङ्ख्या) को अर्थ हुन्छ।
 * शून्य वा बढी घटनाहरू, अर्थात् कुनै पनि मात्रा। त्यसैले s* कुनै पनि स्पेस को संख्या वा कुनै खाली ठाउँ को अर्थ।
{नम्बर} or

{संख्या 1,संख्या 2}

यदि तपाइँ घटनाहरूको सख्त रूपमा परिभाषित संख्या निर्दिष्ट गर्न आवश्यक छ भने, त्यसपछि यो घुमाउरो कोष्ठकहरूमा निर्दिष्ट गरिएको छ। उदाहरणका लागि घ {6} यसको अर्थ कडा रूपमा छ अंक, र ढाँचा s{2,5} - दुई देखि पाँच ठाउँ

अब हामी सबैभन्दा रोचक भागमा जाऔं - सिर्जना गरिएको प्रकार्यको अनुप्रयोगको विश्लेषण र हामीले जीवनबाट व्यावहारिक उदाहरणहरूमा ढाँचाहरूको बारेमा के सिक्यौं।

पाठबाट नम्बरहरू निकाल्दै

सुरु गर्नको लागि, एउटा साधारण केसको विश्लेषण गरौं - तपाईंले अल्फान्यूमेरिक दलियाबाट पहिलो नम्बर निकाल्न आवश्यक छ, उदाहरणका लागि, मूल्य सूचीबाट अविरल बिजुली आपूर्तिको शक्ति:

Excel मा नियमित अभिव्यक्ति (RegExp) को साथ पाठ पार्स गर्नुहोस्

नियमित अभिव्यक्ति पछाडि तर्क सरल छ: d कुनै पनि अंक, र क्वान्टीफायर को अर्थ + तिनीहरूको संख्या एक वा बढी हुनुपर्छ भन्नुहुन्छ। फंक्शनको अगाडिको डबल माइनस "अन द फ्लाई" लाई नम्बर-एज-टेक्स्टबाट निकालिएका क्यारेक्टरहरूलाई पूर्ण संख्यामा रूपान्तरण गर्न आवश्यक छ।

पोष्टकोड

पहिलो नजरमा, यहाँ सबै कुरा सरल छ - हामी पङ्क्तिमा ठीक छ अंक खोजिरहेका छौं। हामी एक विशेष वर्ण प्रयोग गर्दछौं d अंक र परिमाणको लागि ० {} वर्ण संख्या को लागी:

Excel मा नियमित अभिव्यक्ति (RegExp) को साथ पाठ पार्स गर्नुहोस्

यद्यपि, स्थिति सम्भव छ जब, रेखाको अनुक्रमणिकाको बाँयामा, पङ्क्तिमा नम्बरहरूको अर्को ठूलो सेट छ (फोन नम्बर, TIN, बैंक खाता, आदि) त्यसपछि हाम्रो नियमित मौसमले पहिलो 6 लाई बाहिर निकाल्नेछ। यसबाट अंकहरू, अर्थात् सही रूपमा काम गर्दैन:

Excel मा नियमित अभिव्यक्ति (RegExp) को साथ पाठ पार्स गर्नुहोस्

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

Excel मा नियमित अभिव्यक्ति (RegExp) को साथ पाठ पार्स गर्नुहोस्

फोन

पाठमा फोन नम्बर फेला पार्ने समस्या यो हो कि नम्बरहरू लेख्नका लागि धेरै विकल्पहरू छन् - हाइफन सहित र बिना, स्पेसहरू मार्फत, कोष्ठकमा क्षेत्रीय कोड सहित वा बिना, आदि। त्यसैले, मेरो विचारमा, यो सजिलो छ। पहिले धेरै नेस्टेड प्रकार्यहरू प्रयोग गरेर स्रोत पाठबाट यी सबै क्यारेक्टरहरू सफा गर्नुहोस् सबस्टिट्यूट (प्रतिस्थापन)ताकि यो एकै पूरैमा सँगै टाँसिन्छ, र त्यसपछि एक आदिम नियमित संग घ {11} पङ्क्तिमा 11 अंक निकाल्नुहोस्:

Excel मा नियमित अभिव्यक्ति (RegExp) को साथ पाठ पार्स गर्नुहोस्

ITN

यो यहाँ अलि बढी जटिल छ, किनभने TIN (हाम्रो देशमा) १०-अङ्कको (कानूनी संस्थाहरूको लागि) वा १२-अङ्कको (व्यक्तिहरूको लागि) हुन सक्छ। यदि तपाइँ विशेष गरी गल्ती फेला पार्नुहुन्न भने, नियमित रूपमा सन्तुष्ट हुन सम्भव छ घ {10,12}, तर, कडाईका साथ भन्नुपर्दा, यसले 10 देखि 12 क्यारेक्टरहरू, अर्थात् र गल्तीले 11 अंकहरू प्रविष्ट गरेको सबै संख्याहरू बाहिर निकाल्नेछ। तार्किक वा अपरेटरद्वारा जडान गरिएका दुईवटा ढाँचाहरू प्रयोग गर्नु बढी सही हुनेछ | (ठाडो पट्टी):

Excel मा नियमित अभिव्यक्ति (RegExp) को साथ पाठ पार्स गर्नुहोस्

कृपया ध्यान दिनुहोस् कि क्वेरीमा हामीले पहिले १२-बिट नम्बरहरू खोज्छौं, र त्यसपछि मात्र १०-बिट नम्बरहरूको लागि। यदि हामीले हाम्रो नियमित अभिव्यक्तिलाई अर्को तरिकाले लेख्यौं भने, यसले सबैका लागि बाहिर निकाल्छ, लामो 12-बिट TIN हरू पनि, केवल पहिलो 10 क्यारेक्टरहरू। त्यो हो, पहिलो सर्त ट्रिगर भएपछि, थप प्रमाणीकरण अब प्रदर्शन गरिएको छैन:

Excel मा नियमित अभिव्यक्ति (RegExp) को साथ पाठ पार्स गर्नुहोस्

यो अपरेटर बीचको आधारभूत भिन्नता हो | मानक एक्सेल तर्क प्रकार्यबाट OR (OR), जहाँ तर्कहरू पुन: व्यवस्थित गर्दा परिणाम परिवर्तन हुँदैन।

उत्पाद SKUs

धेरै कम्पनीहरूमा, वस्तुहरू र सेवाहरू - लेखहरू, SAP कोडहरू, SKUs, आदिमा अद्वितीय पहिचानकर्ताहरू तोकिएका छन्। यदि तिनीहरूको नोटेशनमा तर्क छ भने, तिनीहरू नियमित अभिव्यक्तिहरू प्रयोग गरेर कुनै पनि पाठबाट सजिलै बाहिर निकाल्न सकिन्छ। उदाहरणका लागि, यदि हामीलाई थाहा छ कि हाम्रा लेखहरूमा सधैं तीनवटा क्यापिटल अङ्ग्रेजी अक्षरहरू, हाइफन र त्यसपछिको तीन-अङ्कको संख्या हुन्छ, तब:

Excel मा नियमित अभिव्यक्ति (RegExp) को साथ पाठ पार्स गर्नुहोस्

टेम्प्लेट पछाडि तर्क सरल छ। [AZ] - भनेको ल्याटिन वर्णमालाको कुनै पनि ठूला अक्षर हो। अर्को क्वान्टीफायर ० {} भन्छन् कि यो हाम्रो लागि महत्त्वपूर्ण छ कि त्यहाँ ठीक तीनवटा अक्षरहरू छन्। हाइफन पछि, हामी तीन अंकको लागि पर्खिरहेका छौं, त्यसैले हामी अन्तमा थप्छौं घ {3}

नगद रकम

अघिल्लो अनुच्छेदको समान तरिकामा, तपाईले सामानको विवरणबाट मूल्यहरू (लागत, VAT ...) निकाल्न सक्नुहुन्छ। यदि मौद्रिक रकमहरू, उदाहरणका लागि, हाइफनसँग संकेत गरिएको छ, त्यसपछि:

Excel मा नियमित अभिव्यक्ति (RegExp) को साथ पाठ पार्स गर्नुहोस्

ढाँचा d परिमाणक संग + हाइफन सम्म कुनै पनि संख्या खोज्छ, र घ {2} पछि pennies (दुई अंक) खोज्नेछ।

यदि तपाईंलाई मूल्यहरू होइन, तर VAT निकाल्न आवश्यक छ भने, तपाईंले हाम्रो RegExpExtract प्रकार्यको तेस्रो वैकल्पिक तर्क प्रयोग गर्न सक्नुहुन्छ, जसले निकाल्नको लागि तत्वको क्रम संख्या निर्दिष्ट गर्दछ। र, निस्सन्देह, तपाईं प्रकार्य बदल्न सक्नुहुन्छ सबस्टिट्यूट (प्रतिस्थापन) नतिजाहरूमा, मानक दशमलव विभाजकमा हाइफन गर्नुहोस् र सुरुमा डबल माइनस थप्नुहोस् ताकि एक्सेलले भेटिएको VAT लाई सामान्य संख्याको रूपमा व्याख्या गर्छ:

Excel मा नियमित अभिव्यक्ति (RegExp) को साथ पाठ पार्स गर्नुहोस्

कार प्लेट नम्बरहरू

If you do not take special vehicles, trailers and other motorcycles, then the standard car number is parsed according to the principle “letter – three numbers – two letters – region code”. Moreover, the region code can be 2- or 3-digit, and only those that are similar in appearance to the Latin alphabet are used as letters. Thus, the following regular expression will help us to extract numbers from the text:

Excel मा नियमित अभिव्यक्ति (RegExp) को साथ पाठ पार्स गर्नुहोस्

समय

HH:MM ढाँचामा समय निकाल्न, निम्न नियमित अभिव्यक्ति उपयुक्त छ:

Excel मा नियमित अभिव्यक्ति (RegExp) को साथ पाठ पार्स गर्नुहोस्

कोलोन टुक्रा पछि [०-५]घ, यो पत्ता लगाउन सजिलो छ, दायरा 00-59 मा कुनै पनि संख्या सेट गर्दछ। कोष्ठकमा कोलोन अघि, तार्किक OR (पाइप) द्वारा विभाजित गरी दुई ढाँचाहरू काम गर्छन्:

  • [०-५]घ - 00-19 दायरामा कुनै पनि संख्या
  • १२० [२-२] - 20-23 दायरामा कुनै पनि संख्या

प्राप्त परिणाममा, तपाइँ अतिरिक्त मानक एक्सेल प्रकार्य लागू गर्न सक्नुहुन्छ समय (टीम)यसलाई समय ढाँचामा रूपान्तरण गर्नको लागि जुन कार्यक्रमलाई बुझ्न सकिन्छ र थप गणनाहरूको लागि उपयुक्त छ।

पासवर्ड चेक

मानौं कि हामीले प्रयोगकर्ताहरूद्वारा आविष्कार गरेका पासवर्डहरूको सूची शुद्धताको लागि जाँच गर्न आवश्यक छ। हाम्रा नियमहरू अनुसार, पासवर्डहरूले अंग्रेजी अक्षरहरू (लोअरकेस वा अपरकेस) र संख्याहरू मात्र समावेश गर्न सक्छन्। खाली ठाउँहरू, अन्डरस्कोरहरू र अन्य विराम चिन्हहरूलाई अनुमति छैन।

जाँच निम्न सरल नियमित अभिव्यक्ति प्रयोग गरेर व्यवस्थित गर्न सकिन्छ:

Excel मा नियमित अभिव्यक्ति (RegExp) को साथ पाठ पार्स गर्नुहोस्

वास्तवमा, यस्तो ढाँचाको साथ हामीलाई चाहिन्छ कि सुरुको बीचमा (^) र अन्त्य ($) हाम्रो पाठमा वर्ग कोष्ठकमा दिइएको सेटबाट क्यारेक्टरहरू मात्र थिए। यदि तपाइँ पनि पासवर्डको लम्बाइ जाँच गर्न आवश्यक छ (उदाहरणका लागि, कम्तिमा 6 वर्ण), त्यसपछि क्वान्टीफायर + फारममा अन्तराल "छ वा बढी" द्वारा प्रतिस्थापन गर्न सकिन्छ {०.6१००,१XNUMX,०.XNUMX०,}:

Excel मा नियमित अभिव्यक्ति (RegExp) को साथ पाठ पार्स गर्नुहोस्

ठेगानाबाट शहर

मानौं हामीले ठेगाना पट्टीबाट शहर तान्न आवश्यक छ। नियमित कार्यक्रमले मद्दत गर्नेछ, "g" बाट पाठ निकाल्दै। अर्को अल्पविराममा:

Excel मा नियमित अभिव्यक्ति (RegExp) को साथ पाठ पार्स गर्नुहोस्

यस ढाँचालाई नजिकबाट हेरौं।

यदि तपाईंले माथिको पाठ पढ्नुभएको छ भने, तपाईंले पहिले नै बुझ्नुभयो कि नियमित अभिव्यक्ति (अवधि, तारा चिन्ह, डलर चिन्हहरू, आदि) मा केही क्यारेक्टरहरूको विशेष अर्थ हुन्छ। यदि तपाईलाई यी क्यारेक्टरहरू आफैं खोज्न आवश्यक छ भने, तिनीहरूको अगाडि ब्याकस्ल्याश (कहिलेकाहीँ भनिन्छ ढाल)। त्यसकारण, टुक्रा "g" खोज्दा। हामीले नियमित अभिव्यक्तिमा लेख्नुपर्छ श्री। यदि हामी एक प्लस खोज्दै हुनुहुन्छ भने + आदि

हाम्रो टेम्प्लेटमा अर्को दुई क्यारेक्टरहरू, डट र क्वान्टीफायर एस्टेरिस्क, कुनै पनि क्यारेक्टरहरूको संख्याको लागि खडा हुन्छ, जस्तै कुनै पनि शहरको नाम।

टेम्प्लेटको अन्त्यमा अल्पविराम छ, किनभने हामी "g" बाट पाठ खोजिरहेका छौं। अल्पविराममा। तर पाठमा धेरै अल्पविराम हुन सक्छ, हैन? सहर पछी मात्रै होइन, सडक, घर आदि पछि पनि हाम्रो माग कुनमा रोकिने ? प्रश्न चिन्ह त्यसैका लागि हो । यो बिना, हाम्रो नियमित अभिव्यक्तिले सम्भव सबै भन्दा लामो स्ट्रिङ निकाल्नेछ:

Excel मा नियमित अभिव्यक्ति (RegExp) को साथ पाठ पार्स गर्नुहोस्

नियमित अभिव्यक्तिको सन्दर्भमा, यस्तो ढाँचा "लोभी" हो। स्थिति सच्याउनको लागि, एउटा प्रश्न चिन्ह आवश्यक छ - यसले क्वान्टीफायर बनाउँछ जसको पछि यो "कंजू" खडा हुन्छ - र हाम्रो क्वेरीले पाठलाई "g" पछिको पहिलो काउन्टर अल्पविराममा मात्र लैजान्छ:

Excel मा नियमित अभिव्यक्ति (RegExp) को साथ पाठ पार्स गर्नुहोस्

पूर्ण पथबाट फाइलनाम

अर्को धेरै सामान्य अवस्था पूर्ण मार्गबाट ​​फाइल नाम निकाल्नु हो। फारमको एक साधारण नियमित अभिव्यक्तिले यहाँ मद्दत गर्नेछ:

Excel मा नियमित अभिव्यक्ति (RegExp) को साथ पाठ पार्स गर्नुहोस्

यहाँ युक्ति यो हो कि खोज, वास्तवमा, विपरित दिशामा हुन्छ - अन्त्य देखि सुरु सम्म, किनभने हाम्रो टेम्प्लेटको अन्त्यमा $, र हामी दायाँबाट पहिलो ब्याकस्ल्याश सम्म सबै कुरा खोज्दैछौं। अघिल्लो उदाहरणको डट जस्तै ब्याकस्ल्याश एस्केप गरिएको छ।

PS

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

अन्य व्यक्तिको नियमित अभिव्यक्ति विश्लेषण र पार्स गर्न वा आफ्नै डिबग गर्न, त्यहाँ धेरै सुविधाजनक अनलाइन सेवाहरू छन्: RegEx101, RegExr र अधिक

दुर्भाग्यवश, क्लासिक नियमित अभिव्यक्तिका सबै सुविधाहरू VBA मा समर्थित छैनन् (उदाहरणका लागि, रिभर्स खोज वा POSIX कक्षाहरू) र सिरिलिकसँग काम गर्न सक्छ, तर मलाई लाग्छ कि त्यहाँ के छ तपाइँलाई खुशी पार्न पहिलो पटक पर्याप्त छ।

यदि तपाइँ यस विषयमा नयाँ हुनुहुन्न भने, र तपाइँसँग साझेदारी गर्न केहि छ भने, तलका टिप्पणीहरूमा Excel मा काम गर्दा उपयोगी नियमित अभिव्यक्तिहरू छोड्नुहोस्। एउटा मन राम्रो छ तर दुई जुत्ता एक जोडी !

  • SUBSTITUTE प्रकार्यको साथ पाठ प्रतिस्थापन र सफा गर्दै
  • Search and highlighting of Latin characters in text
  • निकटतम समान पाठ खोज्नुहोस् (Ivanov = Ivonov = Ivanof, आदि)

जवाफ छाड्नुस्