Excel RegEx dæmi: Notkun reglulegra segða í formúlum

  • Deildu Þessu
Michael Brown

Geturðu aldrei skilið hvers vegna reglulegar segðir eru ekki studdar í Excel formúlum? Nú eru þeir það :) Með sérsniðnum aðgerðum okkar geturðu auðveldlega fundið, skipt út, dregið út og fjarlægt strengi sem passa við ákveðið mynstur.

Við fyrstu sýn hefur Excel allt sem þú gætir þurft fyrir textastreng. meðhöndlun. Hmm... hvað með reglulegar segðir? Úbbs, það eru engar innbyggðar Regex aðgerðir í Excel. En enginn segir að við getum ekki búið til okkar eigin :)

    Hvað er regluleg tjáning?

    Regluleg tjáning (aka regex eða regexp ) er sérkóðuð röð stafa sem skilgreinir leitarmynstur. Með því að nota það mynstur geturðu fundið samsvarandi stafasamsetningu í streng eða staðfest gagnainnslátt. Ef þú þekkir algildismerki geturðu hugsað um regexes sem háþróaða útgáfu af jokertáknum.

    Regluleg orðtök hafa sína eigin setningafræði sem samanstendur af sérstöfum, aðgerðum og smíðum. Til dæmis, [0-5] passar við hvern einasta tölustaf frá 0 til 5.

    Regluleg orðtök eru notuð í mörgum forritunarmálum, þar á meðal JavaScript og VBA. Hið síðarnefnda hefur sérstakan RegExp hlut, sem við munum nota til að búa til sérsniðnar aðgerðir okkar.

    Styður Excel regex?

    Því miður eru engar innbyggðar Regex aðgerðir í Excel. Til að geta notað regluleg segð í formúlunum þínum þarftu að búa til þína eigin notendaskilgreinda aðgerð (VBArök:

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

    Til að fá fleiri formúludæmi, vinsamlegast sjá:

    • Hvernig á að passa saman strengi með venjulegum segðum
    • Excel gagnaprófun með regexes

    Excel Regex Extract aðgerð

    RegExpExtract aðgerðin leitar að undirstrengjum sem passa við venjulega segð og dregur út allar samsvörun eða sértæk samsvörun.

    RegExpExtract(texti, mynstur, [tilvik_númer], [passa_fall])

    Hvar:

    • Texti (áskilið) - textastrengurinn til að leita in.
    • Mynstur (áskilið) - regluleg segð sem passa við.
    • Tilviksnúmer (valfrjálst) - raðnúmer sem gefur til kynna hvaða tilvik á að útdráttur. Ef því er sleppt, skilar öllum fundnum samsvörun (sjálfgefið).
    • Passunarfall (valfrjálst) - skilgreinir hvort á að passa (TRUE eða sleppt) eða hunsa (FALSE) texta.

    Þú getur fengið kóða fallsins hér.

    Dæmi: hvernig á að draga út strengi með því að nota regluleg segð

    Tökum dæmið okkar aðeins lengra, við skulum draga út reikningsnúmer. Fyrir þetta munum við nota mjög einfalt regex sem passar við hvaða 7 stafa tölu sem er:

    Mynstur : \b\d{7}\b

    Put mynstrið í A2 og þú munt klára verkið með þessari þéttu og glæsilegu formúlu:

    =RegExpExtract(A5, $A$2)

    Ef mynstur er samsvörun, dregur formúlan út reikningsnúmer, ef engin samsvörun finnst - engu er skilað.

    Fleiri dæmi er að finna í: Hvernig á að draga út strengi í Excelmeð regex.

    Excel Regex Replace aðgerð

    RegExpReplace aðgerðin kemur í stað gildanna sem passa við regex með textanum sem þú tilgreinir.

    RegExpReplace(texti, mynstur, skipti , [tilviksnúmer], [samsvörunarfall])

    Hvar:

    • Texti (áskilið) - textastrengurinn til að leita í.
    • Mynstur (áskilið) - regluleg segð sem passa við.
    • Skiptir (áskilið) - textinn sem samsvarandi undirstrengjum er skipt út fyrir.
    • Tilvik_númer (valfrjálst) - tilvikið sem á að skipta út. Sjálfgefið er "allar samsvörun".
    • Match_case (valfrjálst) - stjórnar hvort passa (TRUE eða sleppt) eða hunsa (FALSE) texta.

    Kóði aðgerðarinnar er fáanlegur hér.

    Dæmi: hvernig á að skipta út eða fjarlægja strengi með regexes

    Sumar skrár okkar innihalda kreditkortanúmer. Þessar upplýsingar eru trúnaðarmál og þú gætir viljað skipta þeim út fyrir eitthvað eða eyða með öllu. Hægt er að framkvæma bæði verkefnin með hjálp RegExpReplace aðgerðarinnar. Hvernig? Í annarri atburðarás munum við skipta út fyrir tóman streng.

    Í sýnishornstöflunni okkar eru öll kortanúmer með 16 tölustöfum, sem eru skrifaðar í 4 hópa aðskildir með bilum. Til að finna þá endurtökum við mynstrið með því að nota þessa reglulegu segð:

    Mynstur : \b\d{4} \d{4} \d{4} \d{4}\ b

    Til að skipta út er eftirfarandi strengur notaður:

    Replacement : XXXX XXXX XXXXXXXX

    Og hér er fullkomin formúla til að skipta út kreditkortanúmerum fyrir óviðkvæmar upplýsingar:

    =RegExpReplace(A5, "\b\d{4} \d{4} \d{4} \d{4}\b", "XXXX XXXX XXXX XXXX")

    Með regex og skiptitexta í aðskildum hólfum ( A2 og B2), formúlan virkar jafn vel:

    Í Excel er „fjarlægja“ sérstakt tilvik um „að skipta út“. Til að fjarlægja kreditkortanúmer skaltu bara nota tóman streng ("") fyrir replacement rökin:

    =RegExpReplace(A5, "\b\d{4} \d{4} \d{4} \d{4}\b", "")

    Ábending. Til að fá auðar línur í niðurstöðunum geturðu notað aðra RegExpReplace aðgerð eins og sýnt er í þessu dæmi: Hvernig á að fjarlægja auðar línur með regex.

    Fyrir frekari upplýsingar, vinsamlegast sjá:

    • Hvernig á að skipta um strengi í Excel með því að nota regex
    • Hvernig á að fjarlægja strengi með regex
    • Hvernig á að fjarlægja hvíta bilið með því að nota regexes

    Regex Tools to match, extract , skipta út og fjarlægja undirstrengi

    Notendur Ultimate Suite okkar geta fengið allan kraft reglulegra tjáningar án þess að setja eina kóðalínu í vinnubækurnar sínar. Allur nauðsynlegur kóði er skrifaður af þróunaraðilum okkar og samþættur sléttur í Excel meðan á uppsetningu stendur.

    Ólíkt VBA aðgerðunum sem fjallað er um hér að ofan eru virkni Ultimate Suite .NET byggðar, sem gefur tvo megin kosti:

    1. Þú getur notað reglubundnar tjáningar í venjulegum .xlsx vinnubókum án þess að bæta við neinum VBA kóða og þurfa að vista þær sem makró-virkar skrár.
    2. .NET Regex vél styður klassíska fullbúna eiginleikaregluleg segð, sem gerir þér kleift að búa til flóknari mynstur.

    Hvernig á að nota Regex í Excel

    Með Ultimate Suite uppsetta er notkun reglulegra segða í Excel eins einföld og þessi tvö skref :

    1. Á flipanum Ablebits Data , í hópnum Texti , smelltu á Regex Tools .

    2. Á Regex Tools glugganum, gerðu eftirfarandi:
      • Veldu upprunagögnin.
      • Sláðu inn regex mynstur.
      • Veldu þann valkost sem þú vilt: Passa , Dregið út , Fjarlægja eða Skipta út .
      • Til að fá niðurstöðuna sem formúla en ekki gildi, veldu Setja inn sem formúlu gátreitinn.
      • Ýttu á aðgerðahnappinn.

      Til dæmis til að fjarlægja kreditkortanúmer úr hólfum A2:A6, við stillum þessar stillingar:

    Í stuttu máli verður AblebitsRegex fall sett inn í nýjan dálk hægra megin við upprunalegan gögn. Í okkar tilviki er formúlan:

    =AblebitsRegexRemove(A2, "\b\d{4} \d{4} \d{4} \d{4}\b")

    Þegar formúlan er til staðar geturðu breytt, afritað eða fært hana eins og hvaða innfædda formúlu sem er.

    Hvernig á að setja Regex formúlu beint inn í reit

    AblebitsRegex aðgerðirnar er einnig hægt að setja beint inn í reit án þess að nota viðmót viðbótarinnar. Svona er það:

    1. Smelltu á fx hnappinn á formúlustikunni eða Setja inn fall á flipanum Formúlur .
    2. Í Insert Function valmyndinni skaltu velja AblebitsUDFs flokki, veldu fallið sem þú vilt og smelltu á OK.

    3. Skilgreindu rök fallsins eins og þú gerir venjulega og smelltu á OK. Búið!

    Nánari upplýsingar er að finna í Regex Tools fyrir Excel.

    Svona á að nota reglubundnar segðir til að passa saman, draga út, skipta út og fjarlægja texta í Excel frumum. Ég þakka þér fyrir lesturinn og hlakka til að sjá þig á blogginu okkar í næstu viku!

    Lagt niðurhal

    Excel Regex - formúludæmi (.xlsm skrá)

    Ultimate Suite - prufuútgáfa (.exe skrá)

    eða .NET byggt) eða settu upp verkfæri frá þriðja aðila sem styðja regexes.

    Excel Regex svindlblað

    Hvort sem regex mynstur er mjög einfalt eða mjög háþróað, þá er það byggt með því að nota algenga setningafræði. Þessi kennsla miðar ekki að því að kenna þér reglulegar tjáningar. Fyrir þetta er nóg af auðlindum á netinu, allt frá ókeypis námskeiðum fyrir byrjendur til úrvalsnámskeiða fyrir lengra komna notendur.

    Hér að neðan gefum við skjóta tilvísun í helstu RegEx mynstrin sem munu hjálpa þér að ná tökum á grunnatriðum. Það gæti líka virkað sem svindlari þegar þú rannsakar frekari dæmi.

    Ef þú ert ánægð með reglubundnar tjáningar geturðu hoppað beint í RegExp aðgerðirnar.

    Stafur

    Þessar eru algengustu mynstrin til að passa við ákveðna stafi.

    Mynstur Lýsing Dæmi Passar
    . Jildarstafur: passar við hvern einasta staf nema línuskil .ot punktur , hot , pot , @ot
    \d Stafnastafur: einhver einn stafur frá 0 til 9 \d Í a1b samsvarar 1
    \D Sérhver stafur sem er EKKI tölustafur \D Í a1b passar við a og b
    \s Hvítt bil: bil, flipi, ný lína og vagnskil .\s. Í 3 sent , samsvarar 3 c
    \S Allirstafur sem ekki er hvítbil \S+ Í 30 cent , passar við 30 og cent
    \w Orðstafur: hvaða ASCII bókstafur, tölustafur eða undirstrik \w+ Í 5_kettum*** , passar við 5_kettir
    \W Allir stafir sem eru EKKI tölustafir eða undirstrik \W+ Í 5_kettir*** , passa ***
    \t Tab
    \n Ný lína \n\d+ Í tveggja línu strengur fyrir neðan, passar við 10

    5 ketti

    10 hunda

    \ Sleppur við sérstaka merkingu persónu, svo þú getir leitaðu að því \.

    \w+\.

    Sleppur við punkt svo þú getir fundið bókstaflega "." staf í streng

    Herra , Frú , Prof.

    Stafnaflokkar

    Með því að nota þessi mynstur geturðu passað saman þætti úr mismunandi stafasettum.

    Mynstur Lýsing Dæmi Passar
    [stafir] Passar við einhvern stakan staf í sviga d[oi]g hundur og dig
    [^stafir] Passar við einhvern stakan staf EKKI í sviga d[^oi]g Passar dag, dug , d1g

    Passar ekki hundur og dig

    [frá–til] Passar við hvaða staf sem er á bilinu á millisviga [0-9]

    [a-z]

    [A-Z]

    Allir stakir tölustafir frá 0 til 9

    Allir stakir lágstafir

    Hvaða stakur hástafur sem er

    Magntölur

    Magntölur eru sérstök orðatiltæki sem tilgreina fjölda stafa sem passa við. Magni gildir alltaf um stafinn á undan.

    Mynstur Lýsing Dæmi Passar
    * Núll eða fleiri tilvik 1a* 1, 1a , 1aa, 1aaa o.s.frv.
    + Eitt eða fleiri tilvik po+ Í potti , passar við po

    Í lélegu , passar við poo

    ? Núll eða eitt atvik roa?d vegur, stangir
    *? Núll eða fleiri tilvik, en eins færri og hægt er 1a*? Í 1a , 1aa og 1aaa , samsvarar 1a
    +? Eitt eða fleiri tilvik, en eins færri og hægt er po+? Í potti og lélegu samsvarar po
    ?? Núll eða eitt tilvik , en eins færri og hægt er roa?? Í vegi og stangi passar við ro
    {n} Passar við fyrra mynstur n sinnum \d{3} Nákvæmlega 3 tölustafir
    {n ,} Passar við fyrra mynstur n eða oftar \d{3,} 3 eða fleiri tölustafir
    {n,m} Passar viðundanfarandi mynstur á milli n og m sinnum \d{3,5} Frá 3 til 5 tölustöfum

    Flokkun

    Flokkunarsmíði eru notuð til að fanga undirstreng úr upprunastrengnum, svo þú getur framkvæmt einhverja aðgerð með honum.

    Syntax Lýsing Dæmi Samsvörun
    (mynstur) Taktahópur: fangar samsvarandi undirstreng og úthlutar honum raðtölu (\d+) Í 5 köttum og 10 hundum , fangar 5 (hópur 1) og 10 (hópur 2)
    (?:pattern) Non-capturing group: passar við hóp en fangar hann ekki (\d+)(?: dogs) Í 5 köttum og 10 hundum , fangar 10
    \1 Innhald hóps 1 (\d+)\+(\d+)=\2\+\1 Passar við 5+10=10+5 og fangar 5 og 10 , sem eru í tökuhópum
    \2 Efni hóps 2

    Akkeri

    Akkeri tilgreina staðsetningu í inntaksstrengnum hvar á að leita að samsvörun.

    Akkeri Lýsing Dæmi Samsvörun
    ^ Byrjun strengs

    Athugið: [^innan í sviga] þýðir "ekki"

    ^\d+ Allir tölustafir í byrjun strengsins.

    Í 5 ketti og 10 hundum , samsvarar 5

    $ Endir strengs \d+$ Hvaða tölu sem er í lok strengsins.

    Í 10Y

    (?<=) Jákvæð útlit (?<=Y)X Passar við tjáningu X þegar Y er á undan því (þ.e. ef Y er fyrir aftan X)
    (? Neikvætt lookbehind (? Passar við tjáningu X þegar það er EKKI á undan Y

    Nú þegar þú veist það sem er nauðsynlegt, skulum við halda áfram að áhugaverðasta hlutanum - með regexes á raunverulegum gögnum til að flokka strengi og finna nauðsynlegar upplýsingar. Ef þú þarft frekari upplýsingar um setningafræðina gæti Microsoft handbókin um Regular Expression Language reynst gagnleg.

    Sérsniðnar RegEx aðgerðir fyrir Excel

    Eins og áður hefur verið nefnt hefur Microsoft Excel engar innbyggðar RegEx aðgerðir. Til að virkja reglulegar tjáningar höfum við búið til þrjár sérsniðnar VBA aðgerðir (aka notendaskilgreindar aðgerðir). Þú getur afritað kóðana af síðunum sem tengjast hér að neðan eða úr sýnishorninu okkar vinnubók og límdu síðan inn þínar eigin Excel skrár.

    Hvernig VBA RegExp aðgerðir virka

    Þessi hluti útskýrir innri vélfræðina og gæti verið int. eresting fyrir þá sem vilja vita nákvæmlega hvað gerist í bakendanum.

    Til að byrja að nota regluleg segð í VBA þarftu annað hvort að virkja RegEx hlut tilvísunarsafnið eða nota CreateObject aðgerðina. Til að spara þér vandræði við að stilla tilvísunina í VBA ritlinum völdum við síðari aðferðina.

    RegExp hluturinn hefur 4 eiginleika:

    • Mynstur - er mynstur til að passa í inntaksstrengnum.
    • Global - stjórnar hvort finna eigi allar samsvörun í inntaksstrengnum eða bara þann fyrsta. Í aðgerðum okkar er það stillt á True til að fá allar samsvörun .
    • MultiLine - ákvarðar hvort það eigi að passa mynstrið þvert á línuskil í margra lína strengjum eða aðeins í fyrstu línu. Í kóðunum okkar er það stillt á True til að leita í hverri línu .
    • IgnoreCase - skilgreinir hvort regluleg segð sé há- og hástafanæm (sjálfgefið) eða hástafa- insensitive (stillt á True). Í okkar tilfelli fer það eftir því hvernig þú stillir valfrjálsu match_case færibreytu. Sjálfgefið er að allar aðgerðir eru há- og hástafanæmar .

    VBA RegExp takmarkanir

    Excel VBA útfærir nauðsynleg regex mynstur, en það skortir marga háþróaða eiginleika fáanlegt í .NET, Perl, Java og öðrum regex vélum. Til dæmis styður VBA RegExp ekki innbyggða breytingar eins og (?i) fyrir samsvörun sem er ekki há- og hástafir eða (?m) fyrir multi-line mode, lookbehinds, POSIX classes, svo eitthvað sé nefnt.

    Excel Regex Samsvörun aðgerð

    RegExpMatch aðgerðin leitar í innsláttarstreng að texta sem passar við venjulega segð og skilar TRUE ef samsvörun finnst, FALSE annars.

    RegExpMatch(texti, mynstur, [ match_case])

    Hvar:

    • Texti (áskilið) - einn eða fleiri strengir til að leita í.
    • Mynstur ( krafist) - venjulegurtjáning til að passa.
    • Passunarfall (valfrjálst) - samsvörunartegund. SATT eða sleppt - hástafaviðkvæmum; FALSE - hástafa-ónæmir

    Kóði fallsins er hér.

    Dæmi: hvernig á að nota reglulegar segð til að passa saman strengi

    Í gagnasafninu hér að neðan, segjum að þú viljir til að bera kennsl á færslurnar sem innihalda SKU kóða.

    Í ljósi þess að hver SKU byrjar á 2 hástöfum, fylgt eftir með bandstrik, fylgt eftir með 4 tölustöfum, geturðu passað þær með eftirfarandi tjáningu.

    Mynstur : \b[A-Z]{2}-\d{4}\b

    Þar sem [A-Z]{2} þýðir hvaða 2 hástafi sem er frá A til Ö og \d{4 } merkir hvaða 4 tölustafi sem er frá 0 til 9. Orðamörk \b gefa til kynna að SKU sé sérstakt orð og ekki hluti af stærri streng.

    Með mynstrinu komið á, byrjaðu að slá inn formúlu eins og þú gerir venjulega , og nafn fallsins mun birtast á listanum sem sjálfvirk útfylling í Excel stingur upp á:

    Að því gefnu að upprunalegi strengurinn sé í A5, þá er formúlan sem hér segir:

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

    Til þæginda geturðu sett inn reglulegu tjáninguna í sérstakan reit og notað algera tilvísun ($A$2) fyrir mynstur rökin t. Þetta tryggir að vistfang hólfs haldist óbreytt þegar þú afritar formúluna í aðrar hólf:

    =RegExpMatch(A5, $A$2)

    Til að birta eigin textamerki í stað TRUE og FALSE, hreiður RegExpMatch í IF fallið og tilgreindu viðkomandi texta í gildi_ef_satt og gildi_ef_ósatt plús 5 gefur 15 , passar við 15

    \b Orðamörk \bjoy\b Passar gleði sem sérstakt orð, en ekki í ánægjulegt . \B EKKI orðamörk \Bjoy\B Passar við gleði í skemmtilegu , en ekki sem sérstakt orð.

    Alternation (OR) smíða

    Alternation opandinn gerir OR rökfræðina kleift, þannig að þú getur passað annað hvort þennan eða hinn þáttinn.

    Construct Lýsing Dæmi Samsvörun

    Michael Brown er hollur tækniáhugamaður með ástríðu fyrir því að einfalda flókna ferla með hugbúnaðarverkfærum. Með meira en áratug af reynslu í tækniiðnaðinum hefur hann aukið færni sína í Microsoft Excel og Outlook, sem og Google Sheets og Docs. Blogg Michael er tileinkað því að deila þekkingu sinni og sérfræðiþekkingu með öðrum, veita auðveld ráð og leiðbeiningar til að bæta framleiðni og skilvirkni. Hvort sem þú ert vanur fagmaður eða byrjandi, þá býður blogg Michaels upp á dýrmæta innsýn og hagnýt ráð til að fá sem mest út úr þessum nauðsynlegu hugbúnaðarverkfærum.