Excel Regex: Xadhkaha u dhigma iyadoo la adeegsanayo tibaaxo joogto ah

  • La Wadaag Tan
Michael Brown

Shaxda tusmada

> Casharradan, waxaan si qoto dheer ugu eegi doonaa sida loo isticmaalo regex si loo waafajiyo xargaha Excel. > 3>

Marka aad u baahan tahay inaad ka hesho qiime cayiman oo kala duwan Unugyada, waxaad isticmaali lahayd shaqada MATCH ama XMATCH. Markaad raadinayso xadhig gaar ah unug, HELID iyo RAADI waxay ku yimaadaan anfaca. Sideese ku ogaan kartaa in unuggu ka kooban yahay macluumaad u dhigma qaab la bixiyay? Sida cad, adoo isticmaalaya tibaaxo joogto ah. Laakiin sanduuqa ka baxsan Excel ma taageerto regexes! Wax walwal ah kama qabno, waxaan ku qasbi doonaa :)

>
    >>>>
>Excel VBA Regex waxay u shaqeysaa inay ku habboonaato xargaha Excel, waxaad u baahan tahay inaad abuurto shaqadaada. Nasiib wanaag, Excel's VBA wuxuu leeyahay shay la dhisay RegExp , kaas oo aad ku isticmaali karto koodka sida hoos ku qoran:Hawlaha Guud ee RegExpMatch Kala duwanaanshaha Dim arRes columns On Error GoTo ErrHandl RegExpMatch = arRes Set regex = CreateObject ( "VBScript.RegExp" ) regex.pattern = design regex.Global = Run regex.MultiLine = Run haddii ay run tahay = match_case Kadibna regex.ignorecase = Kiis kale oo Been ah. Dhammaadtibaaxaha.

Qaabka : \b[\w\.\-]+@[A-Za-z0-9]+[A-Za-z0-9\.\- ]*[A-Za-z0-9]+\.[A-Za-z]{2,24}\b

Si aad si fiican u fahanto waxa halkan ka socda, aan si hoose u eegno qayb kasta :

    >
  • > Magaca isticmaale waxa ku jiri kara xarfo, nambaro, hoosta, dhibco iyo xarago. Anigoo maskaxda ku hayna in \w la mid ah xaraf kasta, digit ama hoosta, waxaan helnaa regex soo socota: [\w\.\-]+
  • Domain name waxaa ku jiri kara xarfo waaweyn iyo kuwa hoose, nambarada, jilayaasha (laakin ma aha booska koowaad ama ugu dambeeya) iyo dhibco (haddii ay dhacdo subdomains). Mar haddii aan la ogolayn in hoosta laga xarriiqo, beddelkii \ w waxaan isticmaaleynaa 3 nooc oo kala duwan: [A-Za-z0-9]+[A-Za-z0-9\.\-]*[A-Za-z0-9 ]+
  • Domayn heerka sare waxa uu ka kooban yahay dhibco ay raacaan xarfo waaweyn iyo kuwa hoose. Waxay ka koobnaan kartaa 2 ilaa 24 xaraf (TLD-ga ugu dheer ee hadda jira): \.[A-Za-z]{2,24}

Fiiro gaar ah. Nidaamku waxa uu u malaynayaa in magaca domain ka kooban yahay 2 ama in ka badan oo xaraf alfanumeric ah.

Qoraalka asalka ah ee A5 iyo qaabka A5, qaacidadu waxay qaadanaysaa qaabkan:

=RegExpMatch(A5, $A$2)

> 3> Ama waxaad isticmaali kartaa mid caadi ah oo fudud tibaaxaha xaqiijinta iimaylka oo leh xarfo yar ama mid weyn:

Qaabka : \b[\w\.\-]+@[a-z0-9]+[a- z0-9 \.\-]*[a-z0-9]+\.[a-z]{2,24}\b

Laakin ka dhig qaacidadaada kiis mid aan dareen lahayn:

>

=RegExpMatch(A5, $A$2, FALSE)

Excel IF formula oo leh regex u dhigma

> Sababo la xiriira xaqiiqda in la dhisay iyo caadadaHawlaha si fiican ayey u socdaan, ma jiraan wax kaa hor istaagaya inaad u wada isticmaasho hal qaacido.

Si aad u soo celiso ama u xisaabiso shay haddii tibaaxaha caadiga ah la iswaafajiyo iyo wax kale haddii aysan isku mid ahayn, ku dheji caadada RegExpMatch ku shaqeeya qoraalka macquulka ah ee HADDII:

HADDII (RegExpMatch haddii kale "Maya".

=IF(RegExpMatch(A5, $A$2,), "Yes", "No")

>>>> Tiri haddii regex la mid yahay

Sababtoo ah hawlaha Excel hooyo ma taageeraan tibaaxaha caadiga ah, waa Suurtagal ma aha in si toos ah loo geliyo regex shaqada COUNTIS ama COUNTIFS. Nasiib wanaag, waxaad ku dayan kartaa shaqadan adigoo isticmaalaya shaqadayada gaarka ah.

Adiga oo u malaynaya inaad isticmaashay regex si aad uhesho lambarada telefoonka oo aad u soo saarto natiijooyinka tiirka B. Si aad u ogaato inta unug ee ka kooban lambarada telefoonka, waxaad u baahan tahay si loo tiriyo qiyamka RUNTA ee B5:B9. Taasna si fudud ayaa loo samayn karaa iyadoo la adeegsanayo habka caadiga ah ee COUNTIF:

> =COUNTIF(B5:B9, TRUE)

Dhib malahan Maskaxda ku hay in shaqadayada caadada u ah ay farsamayn karto unugyo badan markiiba, SUM-ga Excel-na waxa uu ku dari karaa qiyamka qaab habaysan, waa tan waxa aad samayso:

    > qiyamka runta ah iyo kuwa beenta ah
  • Isticmaal laba-diidid (--) si aad ugu qasbid qiimayaasha macquulka ah kuwa iyoeber.
  • >
  • Hel shaqada SUM si aad isugu geyso 1 iyo 0 ee shaxda soo baxday leh Ultimate Suite

    Isticmalayaasha Ultimate Suite waxay ka faa'iidaysan karaan afar hawlood oo Regex ah oo awood leh iyagoon ku darin wax kood ah VBA buugaagtooda shaqada maadaama ay si habsami leh ugu dhex milmeen Excel inta lagu jiro rakibaadda ku-darka. Hawlahayaga gaarka ah waxaa lagu farsameeyaa heerka caadiga ah ee NET RegEx engine waxayna taageertaa tibaaxaha caadiga ah ee si buuxda u muuqda.

    Sida loo isticmaalo shaqada RegexMatch ee caadiga ah

    Adoo u maleynaya inaad haysato noocii ugu dambeeyay ee Ultimate Suite lagu rakibay ( 2021.4 ama ka dib), waxaad ku abuuri kartaa habka Regex Match laba tilaabo oo fudud:

    >
      > Xogta Kartida tab, gudaha Qoraalka kooxda, dhagsii Qalabka Regex .
  • > 15>

    > Dusha Qalabka Regex , samee kuwan soo socda:

    • Dooro Xargaha isha
    • > Geli qaabkaaga
    • Dooro Match doorashada
    • >Si aad natiijada u hesho qaab qaacido ah, ma aha qiyam, dooro Geli qaab qaacido ahaan calaamadee sanduuqa
    • Riix badhanka Match
    • > > 3>

    Daqiiqad ka dib, shaqada AblebitsRegexMatch waxa la geliyaa tiir cusub oo dhanka midig ka xigta xogtaada.

    > Sawirka hoose, shaqadu waxay hubinaysaa in xargaha tiirka A ka kooban yahay 7-god tirooyinka iyo maya tion waxa loo la gelin karaa >si toos ah unug iyada oo loo marayo halbeegga Geli Function sanduuqa wada-hadalka, halkaas oo lagu kala saarayo AblebitsUDFs . >Sida caadiga ah, odhaah joogto ah ayaa lagu daraa qaacidada, laakiin sidoo kale waad sii haysan kartaa waxay ku jirtaa unug gaar ah. Tan, kaliya u isticmaal tixraaca unugga ee doodda 2aad. >
  • Marka la eego, shaqadu waa xaalad-xasaaseed . U dhigma kiis aan dareen lahayn, isticmaal qaabka ( Waan kaaga mahadcelinayaa inaad akhriday waxaanan rajeynayaa inaan kugu arko blog-keena toddobaadka soo socda!
  • > 6>la soo dajin karo >Excel Regex Match Tusaalooyinka (.xlsm file) >Ultimate Suite 14- nooca maalintii si buuxda u shaqaynaya (.exe file) >
>Hadii cntInputRows = input_range.Rows.Count cntInputCols = input_range.Columns.Count ReDim arRes Unugyada (iInputCurRow, iInputCurCurCol) diyaar u ah isticmaalka. Haddii aanad khibrad badan u lahayn VBA, hagahan waxa laga yaabaa inuu ku caawiyo: Sida loo geliyo koodka VBA ee Excel.> Ogow. Kadib gelida koodka, xasuusnoow inaad u kaydiso faylkaaga sidii buug-shaqaale-karti-makro ah(.xlsm).

RegExpMatch syntax

Shaqada RegExpMatch waxay hubisaa in qayb ka mid ah xadhigga isha ay la mid tahay odhaah joogto ah. Natiijadu waa qiimaha Boolean: RUN haddii ugu yaraan hal ciyaar la helo, FALSE haddii kale.

Shaqadeena caadada u ah waxay leedahay 3 dood - labada hore ayaa loo baahan yahay kan ugu dambeeyana waa ikhtiyaari:

RegExpMatch( qoraal , qaabka, [kuwa ciyaarta])

Halka:

    >
  • > Qoraal (loo baahan yahay) - hal ama in ka badan oo xadhig si loo baadho
  • > Qaabka (loo baahan yahay) - tibaaxaha caadiga ah ee la mid ah. Marka si toos ah loo dhigo qaacido, nashqada waa in lagu lifaaqaa xigashooyin laba jibaaran.
  • Match_case (ikhtiyaar) - ayaa qeexaya ciyaarta.nooca. Haddii RUN ama laga tago (default), u dhigma kiis xasaasi ah ayaa la sameeyaa; if BEEN- kiis-aan-jirin.

Shaqadu waxay ku shaqaysaa dhammaan noocyada Excel 365, Excel 2021, Excel 2019, Excel 2016, Excel 2013 iyo Excel 2010.

3 waxyaalood oo aad waa in aad wax ka ogaataa RegExpMatch

Kahor inta aynaan u gudbin xisaabinta wax ku oolka ah, fadlan u fiirso qodobadan soo socda ee caddaynaya farsamooyinka qaar:

>
    >Shaqadu waxay farsamayn kartaa hal unug ama kala duwanaanshaha unugyada . Xaaladda dambe, natiijadu waxay ku soo celisaa unugyada deriska ah qaab muuqaal firfircoon, ama kala daadsan, sida ku cad tusaalahan
  1. Sida caadiga ah, shaqadu waa xaalad xasaasi ah . Si aad u iska indhotirto kiiska qoraalka, u dhig kiis_ku-dhiman dooda BEEN. Sababtoo ah xaddidaadda VBA Regexp, qaabka aan dareenka lahayn (?i) lama taageero.
  2. Haddii qaab sax ah aan la helin, shaqadu waxay soo noqonaysaa BEEN; haddii qaabku aanu sax ahayn , waa #QIIMO! khaladku wuu dhacaa Ma dammaanad qaadi karno in qaababkayagu ay si khalad ah ugu shaqayn doonaan tiro balaadhan oo ah xogta gelinta ee xaashidaada dhabta ah. Kahor intaadan gelin wax-soo-saarka, iska hubi inaad tijaabiso oo aad hagaajiso jaantusyadayada muunada hadba baahidaada

    Sida loo isticmaalo regex to match strings in Excel. qaab isku mid ah,tibaaxaha caadiga ah ayaa ah xal ku haboon.

    Haddii aad haysato unugyo kala duwan (A5:A9) oo ka kooban tafaasiil kala duwan oo ku saabsan walxaha qaarkood. Waxaad doonaysaa inaad ogaato unugyadu leeyihiin SKUs. Iyadoo loo maleynayo in SKU kastaa uu ka kooban yahay 2 xaraf oo waaweyn, jikaab, iyo 3 nambar, waxaad la mid noqon kartaa iyaga adoo isticmaalaya tibaaxaha soo socda.

    Qaabka : \b[A-Z]{2}-\ d{3}\b

    Meesha [A-Z]{2} macnaheedu waa 2 xaraf oo waaweyn oo ka yimid A ilaa Z iyo \d{3} macneheedu waa 3 nambar oo 0 ilaa 9 ah. xuduud, micnaha SKU waa kelmad gooni ah, oo aan qayb ka ahayn xadhig weyn sida 23-MAR-2022.

    Iyadoo qaabka la dejiyay, waxaan u gudbi karnaa qorista qaacido. Asal ahaan, adeegsiga shaqo gaar ah kama duwana mid hooyo. Isla markaad bilowdo inaad qorto qaacido, magaca shaqada ayaa ka muuqan doona liiska uu soo jeediyay Excel's AutoComplete. Si kastaba ha ahaatee, waxaa jira dhowr nuuc oo kala duwan oo ku jira Dynamic Array Excel (Microsoft 365 iyo Excel 2021) iyo Excel dhaqameed (2019 iyo noocyadii hore). unug keliya, tixraac unuggaas doodda kowaad. Doodda labaad waxa loo malaynayaa inay ku jirto odhaah joogto ah.

    > =RegExpMatch(A5, "\b[A-Z]{2}-\d{3}\b") >Habka waxa kale oo lagu hayn karaa unug hore loo sii qeexay, kaas oo lagu xidhay tixraac dhammaystiran ($ A$2): <3

    =RegExpMatch(A5, $A$2)

    Kadib marka aad geliso qaacidada unugga koowaad, waxaad hoos u jiidi kartaa dhammaan safafka kale.

    HabkanSi qurux badan ugu shaqeeya dhammaan noocyada Excel .

    >>

    Ku dhig xargaha unugyo badan hal mar

    >Si loo waafajiyo xargaha badan oo leh hal qaacido, ku dar tixraac kala duwan ee doodda koowaad:

    =RegExpMatch(A5:A9, "\b[A-Z]{2}-\d{3}\b")

    >In Excel 365 iyo Excel 2021 kuwaas oo taageera arrays firfircoon, waxay u shaqeysaa sidan - waxaad ku qortaa qaacidada unugga kowaad, ku dhufo Gelida , oo qaacidadu waxay si toos ah ugu daadataa unugyada hoose

    >

    In Excel 2019 iyo ka hor, waa Kaliya waxay u shaqeysaa sidii qaacido array CSE ah oo dhaqameed, kaas oo la geliyo unugyo kala duwan oo lagu dhammeeyo adigoo riixaya Ctrl + Shift + Geli furayaasha wadajir.

    Regex si loo waafajiyo lambarka 7>

    Si aad u dhigma hal lambar oo ka bilaabma 0 ilaa 9, isticmaal \d ee ku jira regex Iyada oo ku xidhan hawshaada gaarka ah, ku dar cabbire ku habboon ama samee qaab aad u adag.

    Regex si ay ugu habboonaato nambar kasta

    Si aad u dhigma tiro kasta oo dherer kasta ah, dhig + quantifier isla markiiba ka dib / d character, kaas oo sheegaya in la raadiyo tiro ka kooban 1 ama in ka badan.

    Qaabka : \d+

    =RegExpMatch(A5:A9, "\d+")

    Regex si ay u dhigmaan tirada dhererka gaarka ah

    >

    Haddii yoolkaagu yahay in la iswaafajiyo qiyamka tirooyinka ka kooban tiro go'an, ka dib isticmaal \d oo wata qiyaas ku habboon.

    Tusaale ahaan, si loo waafajiyo lambarada qaansheegadka oo ka kooban 7 lambar, waxaad isticmaali doontaa \d{7}. Si kastaba ha ahaatee, fadlan maskaxda ku hay in ay u dhigmi doonto 7sida la filayo:

    > > Xusuusin:
    • Xeerka caalamiga ah lama hubiyo, si ay u joogaan ama aanay u joogin.
    • > 12> Tibaaxaha caadiga ah, \ s waxay u taagan tahay xaraf kasta oo meel cad sida meel bannaan, tab, soo celin baabuur, ama khad cusub. Si aad u ogolaato boosaska kaliya, isticmaal [-\. ] halkii aad ka ahaan lahayd [-\.\s].
  3. Regex si Aan u dhigmin jilaha

    Si aad u hesho xadhkaha aan ku jirin xarfo gaar ah, waxaad isticmaali kartaa fasallada jilayaasha la diidey [^] ee u dhigma. wax aan ku jirin biraha. Tusaale ahaan:

    • [^13] waxay la mid noqonaysaa xaraf kasta oo aan ahayn 1 ama 3.
    • [^1-3] waxay la mid noqonaysaa xarfo kasta oo aan ahayn 1, 2 ama 3 (ie. lambar kasta oo ka bilaabma 1 ilaa 3).

    Liiska telefoonada, ka soo qaad inaad rabto inaad hesho kuwa aan lahayn koodka waddanka. Maskaxda ku hay in kood kasta oo caalami ah uu ku jiro calaamadda +, waxaad isticmaali kartaa fasalka [^\+] si aad u hesho xarkaha aan ku jirin calaamada lagu daray. Waxaa muhiim ah in la ogaado in tibaaxaha kore uu la mid yahay jile kasta oo aan + Sababtoo ah nambarka taleefoonku wuxuu ahaan karaa meel kasta oo xarig ah, qasab maaha bilowga hore, * qiyaasaha ayaa lagu daraa si loo hubiyo xaraf kasta oo xiga. Bilawga ^ iyo dhammaadka $ waxay hubiyaan in dhammaan xadhigga la habeeyey. Natiijadu, waxaynu helnaa tibaaxaha caadiga ah ee hoos ku qoran oo leh "ha u dhigmin + dabeecadda meel kasta oo xadhig ah"

    Qaabka :^[^\+]*$

    =RegExpMatch(A5, "^[^\+]*$")

    Regex in AANU u dhigmin xadhkaha

    Inkasta oo aanay jirin eray bixin joogto ah oo gaar ah adigoon u dhigmin xarig gaar ah, waxaad ku dayan kartaa hab-dhaqankan adigoo isticmaalaya indho-saar taban.

    Adiga oo u malaynaya inaad rabto inaad hesho xadhkaha aan ku jirin ereyga "liin". Tilmaantan caadiga ah waxay ka shaqayn doontaa daawaynta:

    Qaabka : ^((?! liin). Aragtida taban (?! liin) waxay eegaysaa dhanka midig si ay u aragto haddii aanu jirin kelmad "liin" ka hor. Haddii "liin" uusan jirin, markaas dhibicdu waxay la mid tahay dabeecad kasta marka laga reebo jebinta xariiqda. Tibaaxaha sare waxa uu sameeyaa hal jeeg oo kaliya, * qiyaasuhuna waxa uu ku soo celiyaa eber ama in ka badan, laga bilaabo bilawga xadhigga ku xidhan ^ ilaa dhamaadka xadhigga ku xidhan $.

    In la iska indhatiro kiiska qoraalka, Waxaan doodda 3aad u dhignay BEEN ABUUR si aan shaqadeenna kiis-ku-dhammaanad ah uga dhigno:

    =RegExpMatch(A5, $A$2, FALSE)

    Talooyin iyo qoraallo:

    > Regex-ka sare wuxuu kaliya u shaqeeyaa hal-line xargaha. Haddii ay dhacdo xargaha milti-line, xarfaha ^ iyo $ waxay ku habboon yihiin bilowga iyo dhammaadka xariiq kasta halkii ay ka ahaan lahaayeen bilowga iyo dhammaadka xargaha gelinta, sidaas darteed regex-ku wuxuu kaliya ka raadiyaa safka koowaad. >
  4. Si aad u waafajiso xargaha aan bilaaban > qoraal gaar ah , isticmaal odhaah joogto ah sida ^(?! liin)*$
  5. Si loo waafajiyo xadhkaha aan dhammaan oo wata qoraal gaar ah , ku darxarigga dhamaadka wuxuu ku xiraa qaabka raadinta: ^ ((?! lemons$). u dhigma kiis-aan xasaasi ahayn (?i), kaas oo aan lagu taageerin VBA RegExp. Si looga gudbo xaddidan, shaqadayada caadada ah waxay aqbashaa doodda ikhtiyaariga ah ee 3aad ee magaceedu yahay match_case . Si aad u samayso is waafajinta kiis-dareenka, si fudud u dhig BEEN.

    Aan nidhaahno waxaad jeceshahay inaad aqoonsato taariikhaha sida 1-Mar-22 ama 01-MAR-2022. Si loo waafajiyo qaababka dd-mmm-yyyy iyo d-mmm-yy , waxaanu isticmaalnaa tibaaxaha caadiga ah ee soo socda.

    Qaabka : \b\d{1,2}-(Jannambarada meel kasta oo xadhig ah oo ay ku jiraan lambar 10-god ah ama 100-god ah. Haddii tani aysan ahayn waxa aad raadinayso, dhig ereyga xuduud \b labada dhinac.

    Qaabka : \b\d{7}\b

    >

    =RegExpMatch(A5:A9, "\b\d{7}\b")

    Regex si ay u dhigmaan lambarrada taleefannada

    Maadaama lambarrada taleefannada loo qori karo qaabab kala duwan, isla-dhigiddooda waxay u baahan tahay odhaah joogto ah oo aad u casrisan.

    0> Xogta hoose, waxaan ku raadin doonnaa 10-lambar oo ka kooban 3 nambar 2da kooxood ee ugu horreeya iyo 4 nambar ee kooxda ugu dambeysa. Kooxaha waxaa lagu kala sooci karaa xilli, xargo ama meel bannaan. Kooxda kowaad waxa laga yaabaa ama laguma xidhi karo khaanadaha.

    Qaabka: (\(\d{3}\)

Michael Brown waa xamaasad tignoolajiyada u heellan oo xiise u leh fududaynta hababka adag iyadoo la adeegsanayo aaladaha software. In ka badan toban sano oo waayo-aragnimo ah oo ku saabsan warshadaha teknoolajiyada, wuxuu ku horumariyay xirfadihiisa Microsoft Excel iyo Outlook, iyo sidoo kale Google Sheets iyo Docs. Blog-ga Michael wuxuu u heellan yahay inuu la wadaago aqoontiisa iyo khibradiisa dadka kale, isagoo siinaya tabo-fudud oo la raaco iyo casharro lagu horumarinayo wax soo saarka iyo hufnaanta. Haddii aad tahay xirfadle khibrad leh ama bilow ah, Michael's blog wuxuu bixiyaa fikrado qiimo leh iyo talooyin wax ku ool ah si aad uga faa'iidaysato qalabkan software-ka ah ee muhiimka ah.