Nimûneyên Excel RegEx: di formulan de îfadeyên birêkûpêk bikar tînin

  • Vê Parve Bikin
Michael Brown

Tu carî nayê fêm kirin ka çima bêjeyên birêkûpêk di formulên Excel de nayên piştgirî kirin? Naha, ew in :) Bi fonksiyonên meyên xwerû, hûn dikarin bi hêsanî xêzên ku bi şêwazek taybetî re têkildar in bibînin, biguhezînin, derxin û jêbikin.

Di nihêrîna pêşîn de, Excel her tiştê ku hûn ji bo rêzika nivîsê hewce dikin heye. manîpulasyonên. Hmm… li ser vegotinên birêkûpêk çi ye? Oops, di Excel de fonksiyonên Regex-ê yên çêkirî tune. Lê tu kes nabêje ku em nikarin yên xwe biafirînin :)

    Gotinek birêkûpêk çi ye?

    Daxuyaniyek rêkûpêk (aka regex an regexp ) rêzek tîpan a bi taybetî kodkirî ye ku nimûneyek lêgerînê diyar dike. Bi karanîna wê şêwazê, hûn dikarin di nav rêzek de kombînasyona karakterek hevber bibînin an têketina daneyê rast bikin. Heger hûn bi nîşana qertafên hov dizanin, hûn dikarin regexes wekî guhertoyek pêşkeftî ya tîpên hov bihesibînin.

    Pêşgotinên birêkûpêk hevoksaziya xwe hene ku ji tîpên taybetî, operator û pêkhateyan pêk tê. Mînakî, [0-5] ji 0 heta 5-ê her yekhejmarê li hev dike.

    Di gelek zimanên bernamesaziyê de JavaScript û VBA jî di nav de îfadeyên birêkûpêk têne bikar anîn. Ya paşîn xwedan objeyek RegExp ya taybetî ye, ku em ê wê bikar bînin da ku fonksiyonên xweyên xwerû biafirînin.

    Gelo Excel piştgirî dide regex?

    Mixabin, di Excel de fonksiyonên Regex-ê yên binavkirî tune ne. Ji bo ku hûn bikaribin di formulên xwe de bêjeyên birêkûpêk bikar bînin, pêdivî ye ku hûn fonksiyona xweya diyarkirî ya bikarhêner biafirînin (VBAarguman:

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

    Ji bo nimûneyên formulê yên zêdetir, ji kerema xwe binere:

    • Çawa bi karanîna biwêjên rêkûpêk rêzan li hev dikin
    • Verastkirina Daneyên Excel bi regexes re

    Fonksiyon Excel Regex Extract

    Fonksiyon RegExpExtract li binerdeyên ku bi bêjeyeke rêkûpêk li hev dikin digere û hemî hevokan derdixe an lihevhatina taybetî.

    RegExpExtract(nivîs, nimûne, [nimûn_num], [match_case])

    Li ku:

    • Nivîs (pêdivî ye) - rêzika nivîsê ya lêgerînê in.
    • Nimûne (pêdivî ye) - îfadeya birêkûpêk a ku lihevhatî ye.
    • Nimûneya_num (vebijarkî) - jimareyek rêzik ku destnîşan dike ku kîjan nimûne derxistin. Heger ji holê rabe, hemî hevberdanên ku hatine dîtin vedigerîne (pêşniyaz).
    • Match_case (vebijarkî) - diyar dike ka bi hev re (RAST an jêbirin) an jî paşguhkirina (FALSE) ya nivîsê.

    Hûn dikarin koda fonksiyonê li vir bistînin.

    Nimûne: meriv çawa bi karanîna biwêjên rêkûpêk rêzan derdixe

    Her mînaka me hinekî pêşdetir bigire, em jimareyên fatûreyê derxînin. Ji bo vê yekê, em ê regeksek pir hêsan bikar bînin ku her jimarek 7-hejmarî li hev dike:

    Pattern : \b\d{7}\b

    Put nimûneya di A2-ê de û hûn ê bi vê formula kompakt û xweşik kar bi dest bixin:

    =RegExpExtract(A5, $A$2)

    Eger nimûneyek li hev were, formula jimareyek fatûreyê derdixe, heke hevber neyê dîtin - tiştek nayê vegerandin.

    Ji bo nimûneyên zêdetir, ji kerema xwe binihêrin: Meriv çawa di Excel de rêzan derdixebi kar tîne regex.

    Excel Regex Replace Fonksiyona

    Fonksiyon RegExpReplace nirxên ku regexek bi nivîsa ku te diyar kiriye re diguherîne.

    RegExpReplace(nivîs, nimûne, veguherandin , [numala_num], [match_case])

    Li ku:

    • Nivîs (pêwîst e) - rêzika nivîsê ku tê de bigere.
    • Nimûne (pêdivî ye) - îfadeya birêkûpêk a ku lihevhatî ye.
    • Veguheztin (pêdivî ye) - nivîsa ku li şûna rêzikên lihevhatî biguhere.
    • Nimûne_num (vebijarkî) - mînaka ku tê veguheztin. Vebijêrk "hemû lihevhatin" e.
    • Match_case (vebijarkî) - kontrol dike ka bihevrekirin (RAST an jêbirin) an paşguhkirina (FALSE) ya nivîsê.

    Koda fonksîyonê li vir heye.

    Nimûne: meriv çawa bi karanîna regexes rêzan biguhezîne an jê rake

    Di hin tomarên me de hejmarên qerta krediyê hene. Ev agahdarî nehênî ye, û dibe ku hûn bixwazin wê bi tiştek veguherînin an jî bi tevahî jêbirin. Herdu peywir dikarin bi alîkariya fonksiyona RegExpReplace pêk werin. Çawa? Di senaryoya duyemîn de, em ê bi rêzek vala veguherînin.

    Di tabloya nimûneya me de, hemî hejmarên kartê 16 reqeman hene, ku di 4 koman de bi valahiyan veqetandî têne nivîsandin. Ji bo dîtina wan, em bi vê îfadeya rêkûpêk nimûneyê dubare dikin:

    Pattern : \b\d{4} \d{4} \d{4} \d{4}\ b

    Ji bo veguheztinê, rêzika jêrîn tê bikar anîn:

    Veguheztin : XXXX XXXX XXXXXXXX

    Û li vir formulek bêkêmasî heye ku hûn guhezînin jimareyên qerta krediyê bi agahdariya nehesas:

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

    Bi regex û nivîsa veguhêz di şaneyên cuda de ( A2 û B2), formula wekhev baş dixebite:

    Di Excel de, "rakirin" rewşek taybetî ya "li şûna" ye. Ji bo rakirina hejmarên qerta krediyê, tenê rêzek vala ("") ji bo argumana li şûna bikar bînin:

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

    Şîret. Ji bo ku hûn di encaman de xêzên vala bistînin, hûn dikarin fonksiyonek din a RegExpReplace bikar bînin wekî ku di vê nimûneyê de tê xuyang kirin: Meriv çawa bi karanîna regex xêzên vala radike.

    Ji bo bêtir agahdarî, ji kerema xwe binêre:

    • Meriv çawa bi karanîna regex rêzikên di Excel de diguhezîne
    • Meriv çawa bi karanîna regex rêzan jê dike
    • Meriv çawa bi karanîna regexes cîhê spî ji holê radike

    Amûrên Regexê yên lihevhatî, derxistin , binerêzan biguhezînin û jêbirin

    Bikarhênerên Suite Ultimate me dikarin hemî hêza vegotinên birêkûpêk bistînin bêyî ku yek rêzek kodê têxin pirtûkên xwe yên xebatê. Hemî kodên pêwîst ji hêla pêşdebirên me ve têne nivîsandin û di dema sazkirinê de di Excel-ê we de bi rengek hêsan têne yek kirin.

    Berevajî fonksiyonên VBA yên ku li jor hatine nîqaş kirin, fonksiyonên Ultimate Suite li ser bingeha .NET-ê ne, ku du avantajên sereke dide:

    1. Hûn dikarin di pirtûkên xebatê yên normal .xlsx de bêjeyên birêkûpêk bikar bînin bêyî ku koda VBA-yê lê zêde bikin û pêdivî ye ku wan wekî pelên makro-çalakkirî hilînin.
    2. . Motora NET Regex klasîkên tev-taybet piştgirî dikebiwêjên birêkûpêk, ku dihêle hûn qalibên sofîstîketir ava bikin.

    Çawa Regex di Excel de bikar bînin

    Ligel ku Ultimate Suite hatî saz kirin, karanîna bêjeyên birêkûpêk di Excel de bi qasî van her du gavan hêsan e :

    1. Li ser tabloya Ablebits Data , di koma Text de, bikirtînin Amûrên Reges .

    2. Li ser pencereya Amûrên Regex , van tiştan bikin:
      • Daneyên çavkaniyê hilbijêrin.
      • Nimûneya regexê ya xwe binivîse.
      • Vebijêrka xwestî hilbijêre: Lihevkirin , Derxistina , Rakirin an Li şûna .
      • Ji bo bidestxistina encamê wekî formula û ne nirx e, qutika Wek formulê têxe hilbijêre.
      • Bişkoka çalakiyê bixin.

      Mînak, ji bo ku jimareyên qerta krediyê ji şaneyan derxînin. A2:A6, em van mîhengan mîheng dikin:

    Di sêwiyan de, fonksiyonek AbablebitsRegex dê di stûnek nû ya rastê ya orîjînal de were danîn. jimare. Di rewşa me de, formula ev e:

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

    Dema ku formula hebe, hûn dikarin wê wekî her formula xwemalî biguherînin, kopî bikin an biguhezînin.

    Meriv çawa formûlek Regex rasterast di şaneyek de têxe

    Fonksiyonên AblebitsRegex jî bêyî karanîna navrûya pêvekê rasterast di şaneyek de têne danîn. Bi vî awayî ye:

    1. Bişkoka fx li ser barika formula an jî Fonksiyon têxe li ser tabê Formula bikirtînin.
    2. Di qutiya diyalogê de Fonksiyon Têxe , AblebitsUDFs hilbijêre.kategorî, fonksiyona eleqedar hilbijêre û OK bitikîne.

    3. Argûmanên fonksiyonê wekî ku hûn normal dikin diyar bikin û OK bikirtînin. Qediya!

    Ji bo bêtir agahdarî, ji kerema xwe li Amûrên Regex-ê ji bo Excel-ê binêre.

    Bi vî rengî meriv îfadeyên birêkûpêk bikar tîne da ku di nav hucreyên Excel de nivîsê li hev derxe, derxe, biguhezîne û jê rake. Ez spasiya we dikim ji bo xwendinê û li hêviya dîtina we di hefteya pêş de li ser bloga me me!

    Daxistinên berdest

    Excel Regex - mînakên formula (pelê .xlsm)

    Suite Ultimate - guhertoya ceribandinê (pelê .exe)

    an jî .NET-ê ye) an jî amûrên partiya sêyem ên ku regexes piştgirî dikin saz bikin.

    Excel Regex cheat sheet

    Nexşeya regex pir hêsan be an jî pir sofîstîke be, ew bi karanîna hevoksaziya hevpar tê çêkirin. Ev tutorial ne armanc e ku hûn bêjeyên birêkûpêk hîn bikin. Ji bo vê, gelek çavkanî li serhêl hene, ji dersên belaş ên ji bo destpêkeran bigire heya qursên premium ji bo bikarhênerên pêşkeftî.

    Li jêr em referansek bilez li ser şêwazên sereke yên RegEx pêşkêş dikin ku dê ji we re bibin alîkar ku hûn bingehên bingehîn bistînin. Di heman demê de dema ku mînakên din dixwînin dibe ku ew wekî pelê xapandina we bixebite.

    Heke hûn bi vegotinên rêkûpêk rehet in, hûn dikarin rasterast biçin fonksiyonên RegExp.

    Taybetmendî

    Van ew qalibên ku herî zêde tên bikaranîn ji bo ku hin tîpan li hev bikin.

    li hev dike.
    Şablon Danasîn Mînak Lihevhatin
    . Kerektera çolê: ji xeynî veqetandina xêzekê bi her karakterekê re li hev dike .ot xala , germ , pot , @ot
    \d Karaktera reqem: her yekjimar ji 0 heta 9 \d Di a1b de, 1
    \D Her karakterek ku NE reqem e \D Di a1b de, a û b<2 li hev dike>
    \s Karaktera Cihê spî: valahî, tab, rêza nû û vegere bar .\s. Di 3 cent , bi 3 c
    \S HerKaraktera ne-space \S+ Di 30 cent de, 30 û centan
    \w Karektera peyvê: her herf, jimar an binxala ASCII \w+ Di 5_cats*** , 5_pisîk
    \W Her karaktereke ku NE karaktereke alfan-hejmarî yan jî binê xêzkirinê ye \W+ Di 5_pisîkan*** de, ***
    \t Tab
    \n Rêza nû \n\d+ Di du rêzî de rêzika li jêr, bi 10

    5 pisîkan re li hev dike

    10 kûçikan

    \ Ji wateya taybetî ya karakterekê direve, ji ber vê yekê hûn dikarin li wê bigerin \.

    \w+\.

    Ji serdemekê direve da ku hûn bikarin ""ya rasteqîn bibînin." karaktera di rêzê de

    Birêz , Xanim , Prof.

    Klasên karakteran

    Bi bikaranîna van şêweyan, hûn dikarin hêmanên komek karakterên cihêreng li hev bikin.

    Pattern Vegotin Nimûne Lihevhatin
    [karakter] Her karaktereke di nav kevanan de li hev dike d[oi]g kûçik û dig
    [^ karakter] Her karakterek yekane NE di nav kevanan de namîne d[^oi]g Tehev dike dag, dug , d1g

    Nabe kûçik û dig

    [ji–to] Her karekterek di nav rêza di navberabrûsk [0-9]

    [a-z]

    [A-Z]

    Her hejmarek ji 0 heta 9

    Her tîpek piçûk

    Her herfeke mezin

    Quantifiker

    Quantifiker biwêjên taybet in ku hejmara tîpan diyar dikin ku li hev bikin. Pîvanek her dem ji bo karaktera berî wê tê sepandin.

    Şablon Vegotin Mînak Lihevhatin
    * Sifir an zêdetir bûyer 1a* 1, 1a , 1aa, 1aaa , hwd.
    + Yek an jî çend bûyer po+ Di potê de , po

    Di xizan de, bi poo

    tê hev? Sifir an bûyerek roa?d rê, rod
    *? Sifir an bêtir bûyeran, lê bi qasî ku pêkan kêmtir dibe 1a*? Di 1a , 1aa û 1aaa de, lihevhatin 1a
    +? Yek an jî çend bûyer, lê bi qasî ku pêkan kêm e po+? Di pot û xizan de, po
    ?? Sifir an yek rûdanê , lê bi qasî ku pêkan kêmtir dibe roa?? Li û rodê , ro
    {n} N caran bi qalibê berê li hev dike \d{3} Tam 3 jimare
    {n ,} N an jî zêdetir car bi qalibê berê li hev dike \d{3,} 3 an jî zêdetir jimare
    {n,m} Lihev dikeqalibê pêşiyê di navbera n û m deman de \d{3,5} Ji 3 heta 5 reqeman

    Komkirin

    Avakirinên komkirinê ji bo girtina binerêzek ji rêzika çavkaniyê têne bikar anîn, ji ber vê yekê hûn dikarin bi wê re hin xebitandinê pêk bînin.

    Sîntaks Dasîn Mînak Lihevhatin
    (pattern) Koma girtina: binerêzek lihevhatî digre û jê re jimareyek rêzdar dide (\d+) Di 5 pisîk û 10 kûçikan de , 5 (koma 1) û 10 (koma 2) digire. 15>
    Di 5 pisîk û 10 kûçikan de , 10
    \1 Naveroka komê digre 1 (\d+)\+(\d+)=\2\+\1 5+10=10+5 bihev dike û 5 digire û 10 , ku di girtina koman de ne
    \2 Naveroka koma 2

    Ancker

    Ancker di rêzika têketinê de cîhek diyar dikin ku li ku derê lê bigere lihevhatinek.

    Ancor Vegotin Mînak Maç
    ^ Destpêka rêzê

    Têbînî: [^navberên hundir] tê maneya "ne"

    ^\d+ Her jimareke reqeman li destpêka rêzê.

    Di 5 pisîk û 10 kûçikan de , li hev dike 5

    $ Dawiya rêzê \d+$ Hejmarek hejmar li dawiya rêzê.

    Di 10 deY

    (?<=) Nêrîna erênî li piştê (?<=Y)X Bi îfadeya X gava Y tê pêşiya Yê (ango heke Y li pişt Xê hebe)
    (? Nêrîna neyînî li paş (? Gava X-yê li pêş Y-yê NE li hev dike

    Niha ku hûn bi bingehîn dizanin, werin em biçin beşa herî balkêş - bikar bînin regexes li ser daneya rastîn ji bo parsekkirina rêzan û dîtina agahdariya pêwîst. Heke ji we re bêtir hûrgulî di derheqê hevoksaziyê de hewce bike, dibe ku rêbernameya Microsoft-ê ya li ser Zimanê Birêkûpêk Birêvebir bibe alîkar.

    Fonksiyonên RegEx-ê yên ji bo Excel

    Wekî ku berê jî behs kir, Microsoft Excel fonksiyonên RegEx-ê yên binavkirî tune. Ji bo çalakkirina vegotinên birêkûpêk, me sê fonksiyonên xwerû yên VBA (ango fonksiyonên diyarkirî yên bikarhêner) afirandine. Hûn dikarin kodan ji rûpelên jêrîn an jî ji nimûneya me kopî bikin. pirtûka xebatê, û paşê di pelên xwe yên Excel de binivîsin.

    Fonksiyonên VBA RegExp çawa dixebitin

    Ev beş mekanîka hundurîn rave dike û dibe ku bêkêmasî be ji bo kesên ku dixwazin bi rastî bizanin ka çi di paşerojê de diqewime.

    Ji bo ku hûn di VBA-yê de bêjeyên birêkûpêk bikar bînin, divê hûn pirtûkxaneya referansê ya RegEx çalak bikin an fonksiyona CreateObject bikar bînin. Ji bo ku hûn di edîtora VBA de ji kêşeya danîna referansê xilas bibin, me nêzîkatiya paşîn hilbijart.

    Tişta RegExp 4 taybetmendî hene:

    • Pattern - ew e şablon ku di rêzika têketinê de li hev bikin.
    • Global - kontrol dike ka meriv hemî lihevhatinan di rêzika têketinê de bibîne an tenê ya yekem bibîne. Di fonksiyonên me de, ji bo bidestxistina hemû hevkêşan rast e.
    • PirXet - diyar dike ka di rêzikên pir-xêz de di nav şikestinên xetê de lihevhatin an tenê di rêza yekem de. Di kodên me de, ji bo lêgerîna di her rêzê de rast hatiye danîn.
    • IgnoreCase - diyar dike ka bêjeyek birêkûpêk hesas (default) ye an hal- e. bêhesas (li ser Rast hatî danîn). Di rewşa me de, ew bi wê ve girêdayî ye ku hûn çawa parametreya match_case vebijarkî mîheng dikin. Ji hêla xwerû ve, hemî fonksiyon hesas bi dozê ne .

    Sînorkirinên VBA RegExp

    Excel VBA qalibên regexê yên bingehîn pêk tîne, lê gelek taybetmendiyên pêşkeftî kêm e. di .NET, Perl, Java, û motorên regex ên din de hene. Mînakî, VBA RegExp guhêrbarên xêzkirî yên wekî (?i) ji bo lihevhatinê-bêhessas an (?m) ji bo moda pir-xêzik, lookbehinds, çînên POSIX piştgirî nake.

    Excel Regex Fonksîyona hevberdanê

    Fonksiyon RegExpMatch ji bo metna ku bi bêjeyeke birêkûpêk li hev digere rêza têketinê digere û heke hevberdanek were dîtin TRUE vedigerîne, wekî din FALSE vedigerîne.

    RegExpMatch(nivîs, nimûne, [ match_case])

    Li ku:

    • Nivîs (pêdivî ye) - yek an jî çend rêzikên ku tê de bigere.
    • Pattern ( pêwîst) - birêkûpêkbilêvkirina lihevhatinê.
    • Lihevhatina_case (vebijarkî) - cureyê hevgirtinê. RAST an jî ji holê rakir - bi hesasiya dozê; ÇEWL - nerast-nehesiyar

    Koda fonksiyonê li vir e.

    Nimûne: meriv çawa biwêjên birêkûpêk bikar tîne da ku rêzan li hev bîne

    Di danenûsa jêrîn de, bifikirin ku hûn dixwazin ji bo destnîşankirina navnîşên ku kodên SKU hene.

    Ji ber ku her SKU bi 2 herfên mezin dest pê dike, li dû wê xêzek, li dûv 4 reqeman, hûn dikarin wan bi îfadeya jêrîn bi hev bidin hev.

    Nimûne : \b[A-Z]{2}-\d{4}\b

    Li ku derê [A-Z]{2} tê wateya her 2 tîpên mezin ji A heta Z û \d{4 } tê wateya her 4 reqemên ji 0 heta 9. Sînorek peyva \b nîşan dide ku SKU peyvek cihê ye û ne beşek ji rêzek mezintir e.

    Ligel ku modela hatî damezrandin, dest bi nivîsandina formulek mîna ku hûn bi gelemperî dikin. , û navê fonksiyonê dê di navnîşa ku ji hêla Xweseriya Xweseriya Excel ve hatî pêşniyar kirin de xuya bibe:

    Bi texmîna ku rêzika orîjînal di A5 de ye, formula weha diçe:

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

    Ji bo rehetiyê, tu dikarî îfadeya birêkûpêk têxe şaneyek cihê û ji bo argumena pattern referansek bêkêmasî ($A$2) bikar bîne. t. Ev piştrast dike ku dema ku hûn formulê li şaneyên din kopî bikin navnîşana şaneyê nayê guhertin:

    =RegExpMatch(A5, $A$2)

    Ji bo nîşankirina etîketên nivîsa xwe li şûna TRUE û FALSE, RegExpMatch di fonksiyona IF de bihêlin û di value_if_true û value_if_false de nivîsên xwestinê diyar bikinzêde 5 15 dide , 15 dide hev

    \b Sînorê peyvê \bjoy\b şah wekî peyveke cuda tê hev, lê ne di kêfxweş de. \B NE sînorê peyvê ye \Bjoy\B şah di kêfxweşî de hevber dike, lê ne wek peyveke cuda.

    Avaniya guhêrbar (OR)

    Perbenda veguheztinê mantiqa OR-ê çalak dike, ji ber vê yekê hûn dikarin vê an wê hêmanê li hev bikin.

    Avakirin Danasîn Mînak Lihevhatin

    Michael Brown dilxwazek teknolojiyê ya dilsoz e ku bi hewesek hêsankirina pêvajoyên tevlihev bi karanîna amûrên nermalavê ye. Bi zêdetirî deh salan ezmûnek di pîşesaziya teknolojiyê de, wî jêhatîbûna xwe di Microsoft Excel û Outlook, û her weha Google Sheets û Docs de pêş xist. Bloga Michael ji bo parvekirina zanyarî û pisporiya xwe bi kesên din re veqetandî ye, ji bo baştirkirina hilberî û karîgeriyê serişte û dersên hêsan-şopandinê peyda dike. Çi hûn pisporek demsalî ne an jî destpêkek in, bloga Michael ji bo ku hûn herî zêde ji van amûrên nermalava bingehîn sûd werbigirin, têgihiştinên hêja û şîretên pratîkî pêşkêşî dike.