Regex प्रयोग गरेर एक्सेलमा खाली ठाउँहरू र खाली रेखाहरू हटाउनुहोस्

  • यो साझा गर्नुहोस्
Michael Brown

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

    एक्सेलमा व्हाइटस्पेसहरू ट्रिम गर्न नियमित अभिव्यक्ति किन प्रयोग गर्ने?

    हामीले एक्सेल कार्यपत्रहरूमा ह्वाइटस्पेसहरू हटाउनको लागि नियमित अभिव्यक्तिहरू प्रयोग गर्ने निटी-ग्रिटीमा डुब्न अघि, म पहिलो स्थानमा दिमागमा आउने प्रश्नलाई सम्बोधन गर्न चाहन्छु - एक्सेलमा पहिले नै TRIM हुँदा हामीलाई किन रेगेक्सहरू चाहिन्छ? प्रकार्य?

    भिन्नता बुझ्नको लागि, प्रत्येक केसमा ह्वाइटस्पेसलाई के मानिन्छ हेरौं:

    • बिल्ट-इन TRIM प्रकार्यले स्पेस क्यारेक्टर लाई मात्र स्ट्रिप गर्न सक्छ। जसको ७-बिट ASCII प्रणालीमा मान ३२ छ।
    • नियमित अभिव्यक्तिले खाली ठाउँ ( ), ट्याब (\t), क्यारिज रिटर्न (\r), र नयाँ जस्ता ह्वाइटस्पेसका केही फरक रूपहरू पहिचान गर्न सक्छ। रेखा (\n)। थप रूपमा, त्यहाँ सेतो ठाउँ वर्ण (\s) छ जुन यी सबै प्रकारहरूसँग मेल खान्छ र कच्चा इनपुट सफा गर्नको लागि अत्यन्त उपयोगी हुन्छ।डाटा।

    पर्दा पछाडि के हुन्छ भन्ने कुरा थाहा पाउँदा, समाधान निकाल्न धेरै सजिलो छ, हैन?

    एक्सेलमा रेगुलर एक्सप्रेशन कसरी सक्षम गर्ने

    यो एक ज्ञात तथ्य हो कि आउट-अफ-द-बक्स एक्सेलले नियमित अभिव्यक्तिहरूलाई समर्थन गर्दैन। तिनीहरूलाई सक्षम गर्न, तपाईंले अनुकूलन VBA प्रकार्य सिर्जना गर्न आवश्यक छ। सौभाग्यवश, हामीसँग पहिले नै एउटा छ, नाम RegExpReplace । पर्खनुहोस्, किन "बदल्नुहोस्" जब हामी हटाउने बारे कुरा गर्दैछौं? एक्सेल भाषामा, "हटाउनुहोस्" "रिप्लेस विथ ए इम्प्टी स्ट्रिङ" को लागि अर्को शब्द हो :)

    तपाईँको एक्सेलमा प्रकार्य थप्नको लागि, यो पृष्ठबाट यसको कोड प्रतिलिपि गर्नुहोस्, यसलाई VBA सम्पादकमा टाँस्नुहोस्। , र तपाईँको फाइललाई म्याक्रो-सक्षम कार्यपुस्तिका (.xlsm) को रूपमा बचत गर्नुहोस्।

    यहाँ तपाईँको सन्दर्भको लागि प्रकार्यको वाक्य रचना छ:

    RegExpReplace(पाठ, ढाँचा, प्रतिस्थापन, [instance_num] , [match_case])

    पहिलो तीन तर्कहरू आवश्यक छन्, अन्तिम दुई वैकल्पिक छन्।

    जहाँ:

    • पाठ - मूल स्ट्रिङ मा खोज्नुहोस्।
    • ढाँचा - खोज गर्नको लागि regex।
    • प्रतिस्थापन - प्रतिस्थापन गर्न पाठ। हटाउन ह्वाइटस्पेसहरू , तपाईंले यो तर्कलाई कुनैमा सेट गर्नुहुनेछ:
      • खाली स्ट्रिङ ("") पूर्ण रूपमा सबै खाली ठाउँहरू ट्रिम गर्न <11
      • स्पेस क्यारेक्टर (" ") एउटै स्पेस क्यारेक्टरले धेरै स्पेसहरू प्रतिस्थापन गर्न
  • Instance_num (वैकल्पिक) - उदाहरण संख्या। धेरै जसो अवस्थामा, तपाइँ यसलाई सबै उदाहरणहरू प्रतिस्थापन गर्न छोड्नुहुनेछ(पूर्वनिर्धारित)।
  • Match_case (वैकल्पिक) - मेल (TRUE) वा बेवास्ता (FALSE) पाठ केसलाई संकेत गर्ने बुलियन मान। ह्वाइटस्पेसको लागि, यो अप्रासंगिक छ र त्यसैले हटाइएको छ।
  • थप जानकारीको लागि, कृपया RegExpReplace प्रकार्य हेर्नुहोस्।

    रेजेक्सको साथ कसरी ह्वाइटस्पेस हटाउने - उदाहरणहरू

    को साथ तपाईंको कार्यपुस्तिकामा RegExpReplace प्रकार्य थपियो, एक पटकमा विभिन्न परिदृश्यहरू समाधान गरौं।

    regex प्रयोग गरेर सबै ह्वाइटस्पेसहरू हटाउनुहोस्

    स्ट्रिङमा सबै खाली ठाउँहरू हटाउनको लागि, तपाईंले कुनै पनि सेतो स्पेस क्यारेक्टर खोज्नुहोस्, जसमा एउटा स्पेस, एउटा ट्याब, क्यारिज रिटर्न, र लाइन फिड, र तिनीहरूलाई खाली स्ट्रिङ ("") ले बदल्नुहोस्।

    ढाँचा : \s+

    प्रतिस्थापन : ""

    स्रोत स्ट्रिङ A5 मा छ भनी मान्दै, B5 मा सूत्र हो:

    =RegExpReplace(A5, "\s+", "")

    तपाईंको ढाँचाहरू व्यवस्थापन गर्न सजिलो बनाउन , तपाईँले पूर्वनिर्धारित कक्षमा regex इनपुट गर्न सक्नुहुन्छ र $A$2 जस्ता निरपेक्ष सन्दर्भ प्रयोग गरेर सूत्रमा आपूर्ति गर्न सक्नुहुन्छ, त्यसैले स्तम्भको तल सूत्र प्रतिलिपि गर्दा सेल ठेगाना अपरिवर्तित रहनेछ।

    =RegExpReplace(A5, $A$2, "")

    एक भन्दा बढी ह्वाइटस्पेस हटाउनुहोस्

    हटाउन अतिरिक्त खाली ठाउँ (अर्थात् धेरै n एक लगातार खाली ठाउँहरू), एउटै regex \s+ प्रयोग गर्नुहोस् तर फेला परेका मेलहरूलाई एकल स्पेस क्यारेक्टरले बदल्नुहोस्।

    ढाँचा : \s+

    प्रतिस्थापन : "" "

    =RegExpReplace(A5, "\s+", " ")

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

    पहिलो प्रकार्यले एकल स्पेस क्यारेक्टरले धेरै स्पेसहरू प्रतिस्थापन गर्दछ।

    =RegExpReplace(A5, " +", " ")

    अर्कोले खाली ठाउँहरू स्ट्रिप गर्दछ। लाइनको सुरु र अन्त्यबाट:

    =RegExpReplace(A5, "^ +| +$", "")

    बस दुई कार्यहरू एक अर्कोमा नेस्ट गर्नुहोस्:

    =RegExpReplace(RegExpReplace(A5, " +", " "), "^ +| +$", "")

    र तपाईंले एउटा प्राप्त गर्नुहुनेछ। उत्तम नतिजा:

    रेजेक्स एउटै क्यारेक्टरले धेरै स्पेसहरू प्रतिस्थापन गर्न

    यदि तपाइँ स्ट्रिङबाट सबै स्पेसहरू हटाउन र लगातार स्पेसहरूको प्रत्येक समूहलाई प्रतिस्थापन गर्न चाहनुहुन्छ भने एक विशिष्ट क्यारेक्टरको साथ, तपाईंले यो गर्न आवश्यक छ:

    पहिले, अगाडि र पछिको ह्वाइटस्पेसहरू ट्रिम गर्न यो regex प्रयोग गर्नुहोस्:

    =RegExpReplace(A8, "^[\s]+|[\s]+$", "")

    त्यसपछि, माथिको प्रकार्य सेवा गर्नुहोस्। अर्को RegExpReplace को text तर्कमा जुन तपाईले निर्दिष्ट गर्नुभएको क्यारेक्टरसँग एक वा धेरै लगातार ह्वाइटस्पेसहरू प्रतिस्थापन गर्दछ, जस्तै। हाइफन:

    ढाँचा : \s+

    प्रतिस्थापन : -

    स्रोत स्ट्रिङ A8 मा छ भनी मान्दै, सूत्र यो आकार लिन्छ:

    =RegExpReplace(RegExpReplace(A8, "^[\s]+|[\s]+$", ""), "\s+", "-")

    अथवा तपाइँ स्क्रिनसटमा देखाइएको जस्तै फरक कक्षहरूमा ढाँचा र प्रतिस्थापनहरू प्रविष्ट गर्न सक्नुहुन्छ:

    Regex खाली लाइनहरू हटाउनको लागि

    यहाँ एउटा प्रश्न छ जुन एक सेलमा धेरै लाइनहरू भएका प्रयोगकर्ताहरूले प्राय: सोध्छन्: "मेरो कक्षहरूमा धेरै खाली रेखाहरू छन्। प्राप्त गर्ने कुनै तरिका छ?प्रत्येक सेल मार्फत जानु र म्यानुअल रूपमा प्रत्येक लाइन मेटाउनु बाहेक तिनीहरूलाई छुटकारा दिनुहोस्?" जवाफ: यो सजिलो छ!

    हालको रेखाको सुरुदेखि ^ सम्म एक वर्ण नभएको खाली रेखाहरू मिलाउन। अर्को पङ्क्ति \n, regex हो:

    ढाँचा : ^\n

    यदि तपाईंको दृश्यात्मक रूपमा खाली रेखाहरूमा खाली ठाउँ वा ट्याबहरू छन् भने, यो नियमित अभिव्यक्ति प्रयोग गर्नुहोस्:

    ढाँचा : ^[\t ]*\n

    केवल यो सूत्र प्रयोग गरेर खाली स्ट्रिङसँग regex बदल्नुहोस्, र सबै खाली रेखाहरू एकैचोटि हट्नेछन्!

    =RegExpReplace(A5, $A$2, "")

    RegEx उपकरणहरू प्रयोग गरी ह्वाइटस्पेसहरू हटाउँदै

    माथिका उदाहरणहरूले regexes द्वारा प्रदान गरिएका अद्भुत सम्भावनाहरूको सानो अंश मात्रै देखाएको छ। दुर्भाग्यवश, सबै होइन। क्लासिक रेगुलर एक्सप्रेशनका सुविधाहरू VBA मा उपलब्ध छन्।

    भाग्यवश, हाम्रो अल्टिमेट सुइटमा समावेश गरिएका RegEx उपकरणहरू यी सीमितताहरूबाट मुक्त छन् किनभने तिनीहरू Microsoft को .NET RegEx इन्जिनद्वारा प्रशोधन गरिएका छन्। यसले तपाईंलाई थप परिष्कृत ढाँचाहरू निर्माण गर्न दिन्छ। VBA RegExp. Belo द्वारा समर्थित छैन w तपाईंले यस्तो रेगुलर एक्स्प्रेशनको उदाहरण पाउनुहुनेछ।

    अङ्कहरू बीचको खाली ठाउँ हटाउन Regex

    अल्फान्यूमेरिक स्ट्रिङमा, मान्नुहोस् कि तपाईं संख्याहरू बीचको खाली ठाउँ मात्र हटाउन चाहनुहुन्छ, त्यसैले स्ट्रिङ जस्तै "A 1 2 B" "A 12 B" बन्छ।

    कुनै पनि दुई अंकहरू बीचको ह्वाइटस्पेस मिलाउन, तपाईंले निम्न लुक-अराउन्डहरू प्रयोग गर्न सक्नुहुन्छ:

    ढाँचा : (?<=\d)\s+(?=\d)

    मा आधारित सूत्र सिर्जना गर्नमाथिको regex मा, यहाँ प्रदर्शन गर्न दुई सजिलो चरणहरू छन्:

    1. Ablebits Data ट्याबमा, Text समूहमा, Regex मा क्लिक गर्नुहोस्। उपकरणहरू

    2. Regex Tools फलकमा, स्रोत डेटा चयन गर्नुहोस्, आफ्नो regex प्रविष्ट गर्नुहोस्, हटाउनुहोस् चयन गर्नुहोस्। विकल्प, र थिच्नुहोस् हटाउनुहोस्

      नतिजाहरूलाई सूत्रका रूपमा प्राप्त गर्न, मानहरू होइन, सूत्रको रूपमा घुसाउनुहोस् चेक बाकसमा टिक राख्न नबिर्सनुहोस्।

    एक क्षणमा, तपाईंले AblebitsRegexRemove प्रकार्य मूल डाटाको दायाँतिर नयाँ स्तम्भमा घुसाइएको देख्नुहुनेछ।

    वैकल्पिक रूपमा, तपाईंले केही सेलमा regex इनपुट गर्न सक्नुहुन्छ। , A5 भन्नुहोस्, र Insert function डायलग बाकस प्रयोग गरेर सिधै सेलमा सूत्र घुसाउनुहोस्, जहाँ AblebitsRegexRemove लाई AblebitsUDFs अन्तर्गत वर्गीकृत गरिएको छ।

    यस प्रकार्यलाई विशेष रूपमा स्ट्रिङहरू हटाउनको लागि डिजाइन गरिएको हुनाले, यसलाई केवल दुईवटा तर्कहरू चाहिन्छ - इनपुट स्ट्रिङ र रेगेक्स:

    =AblebitsRegexRemove(A5, $A$2)

    25>

    यसरी खाली ठाउँहरू हटाउने। एक्सेल नियमित अभिव्यक्ति प्रयोग गरेर। पढ्नुभएकोमा म तपाईंलाई धन्यवाद दिन्छु र अर्को हप्ता हाम्रो ब्लगमा तपाईंलाई भेट्नको लागि तत्पर छु!

    उपलब्ध डाउनलोडहरू

    रेजेक्स - उदाहरणहरू (.xlsm फाइल) संग ह्वाइटस्पेस हटाउनुहोस्

    अल्टिम सूट - परीक्षण संस्करण (.exe फाइल)

    शब्दहरू तर स्ट्रिङको सुरु र अन्त्यमा पनि, जुन राम्रो होइन। अग्रगामी र पछाडिको ह्वाइटस्पेसबाट छुटकारा पाउनको लागि, माथिको सूत्रलाई अर्को RegExpReplace प्रकार्यमा नेस्ट गर्नुहोस् जसले सुरु र अन्त्यबाट खाली ठाउँहरू स्ट्रिप गर्दछ:

    =RegExpReplace(RegExpReplace(A5, "\s+", " "), "^[\s]+|[\s]+$", "")

    मा अग्रगामी र पछाडिको ह्वाइटस्पेस हटाउनुहोस्

    रेखाको सुरु वा अन्त्यमा ह्वाइटस्पेस खोज्नको लागि, सुरु ^ र अन्त्य $ एङ्करहरू प्रयोग गर्नुहोस्।

    अग्रणी ह्वाइटस्पेस:

    ढाँचा : ^[\s]+

    ट्रेलिंग ह्वाइटस्पेस:

    ढाँचा : [\s ]+$

    अग्रणी पछाडि ह्वाइटस्पेस:

    ढाँचा : ^[\s]+

    माइकल ब्राउन सफ्टवेयर उपकरणहरू प्रयोग गरेर जटिल प्रक्रियाहरू सरल बनाउने जोशका साथ एक समर्पित टेक्नोलोजी उत्साही हो। प्राविधिक उद्योगमा एक दशक भन्दा बढी अनुभवको साथ, उनले Microsoft Excel र Outlook, साथै Google Sheets र Docs मा आफ्नो सीपलाई सम्मान गरेका छन्। माइकलको ब्लग आफ्नो ज्ञान र विशेषज्ञता अरूसँग साझेदारी गर्न समर्पित छ, उत्पादकता र दक्षता सुधार गर्न सजिलो-पछ्याउन-सजिलो सुझावहरू र ट्यूटोरियलहरू प्रदान गर्न। चाहे तपाईं अनुभवी पेशेवर होस् वा शुरुवातकर्ता होस्, माइकलको ब्लगले यी आवश्यक सफ्टवेयर उपकरणहरूबाट अधिकतम लाभ लिनको लागि बहुमूल्य अन्तर्दृष्टि र व्यावहारिक सल्लाह प्रदान गर्दछ।