Ekzemploj de Excel RegEx: uzante regulajn esprimojn en formuloj

  • Kundividu Ĉi Tion
Michael Brown

Neniam povas kompreni kial regulaj esprimoj ne estas subtenataj en Excel-formuloj? Nun ili estas :) Kun niaj kutimaj funkcioj, vi povas facile trovi, anstataŭigi, ĉerpi kaj forigi ĉenojn kongruajn kun specifa ŝablono.

Unuavide, Excel havas ĉion, kion vi iam ajn povus bezoni por tekstŝnuro. manipuladoj. Hmm... kio pri regulaj esprimoj? Ho, ne ekzistas enkonstruitaj Regex-funkcioj en Excel. Sed neniu diras, ke ni ne povas krei niajn proprajn :)

    Kio estas regula esprimo?

    Regula esprimo (alinome regex regexp ) estas speciale kodita sinsekvo de signoj, kiu difinas serĉan ŝablonon. Uzante tiun ŝablonon, vi povas trovi kongruan signan kombinaĵon en ĉeno aŭ validigi datuman enigon. Se vi konas ĵokeran notacion, vi povas pensi pri regeksoj kiel altnivela versio de ĵokeroj.

    Regulaj esprimoj havas sian propran sintakson konsistantan el specialaj signoj, operatoroj kaj konstruaĵoj. Ekzemple, [0-5] kongruas kun ajna unuopa cifero de 0 ĝis 5.

    Regulaj esprimoj estas uzataj en multaj programlingvoj inkluzive de JavaScript kaj VBA. Ĉi-lasta havas specialan RegExp-objekton, kiun ni uzos por krei niajn kutimajn funkciojn.

    Ĉu Excel subtenas regex?

    Bedaŭrinde, ekzistas neniuj enkonstruitaj Regex-funkcioj en Excel. Por povi uzi regulajn esprimojn en viaj formuloj, vi devos krei vian propran uzant-difinitan funkcion (VBAargumentoj:

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

    Por pliaj formulekzemploj, bonvolu vidi:

    • Kiel kongrui ĉenojn uzante regulajn esprimojn
    • Excel Data Validation kun regeks

    Excel Regex Extract-funkcio

    La funkcio RegExpExtract serĉas subĉenojn kiuj kongruas kun regula esprimo kaj ĉerpas ĉiujn kongruojn aŭ specifa kongruo.

    RegExpExtract (teksto, ŝablono, [instance_num], [match_case])

    Kie:

    • Teksto (postulata) - la tekstoĉeno por serĉi in.
    • Modelo (postulata) - la regula esprimo kongrua.
    • Instance_num (laŭvola) - seria numero kiu indikas kiun okazon por ekstrakto. Se ellasita, resendas ĉiujn trovitajn kongruojn (defaŭlte).
    • Match_case (laŭvola) - difinas ĉu kongrui (VERA aŭ ellasita) aŭ ignori (FALSA) tekstmajuskle.

    Vi povas akiri la kodon de la funkcio ĉi tie.

    Ekzemplo: kiel ĉerpi ŝnurojn per regulaj esprimoj

    Iom pluen nian ekzemplon, ni elprenu fakturnombrojn. Por tio, ni uzos tre simplan regexkson kiu kongruas kun ajna 7-cifera nombro:

    Skemo : \b\d{7}\b

    Metu la ŝablono en A2 kaj vi faros la laboron per ĉi tiu kompakta kaj eleganta formulo:

    =RegExpExtract(A5, $A$2)

    Se ŝablono kongruas, la formulo ĉerpas fakturan nombron, se neniu kongruo estas trovita. - nenio estas resendita.

    Por pliaj ekzemploj, bonvolu vidi: Kiel ĉerpi ŝnurojn en Exceluzante regex.

    Excel Regex Replace-funkcio

    La RegExpReplace -funkcio anstataŭigas la valorojn kongruantajn regex kun la teksto kiun vi specifas.

    RegExpReplace (teksto, ŝablono, anstataŭaĵo). , [instance_num], [match_case])

    Kie:

    • Teksto (postulata) - la tekstoĉeno por serĉi.
    • Ŝablono (postula) - la regula esprimo kongrua.
    • Anstataŭaĵo (postula) - la teksto por anstataŭigi la kongruajn subĉenojn per.
    • Instance_num. (laŭvola) - la instanco por anstataŭigi. La defaŭlta estas "ĉiuj kongruoj".
    • Match_case (laŭvola) - kontrolas ĉu kongrui (VERA aŭ ellasita) aŭ ignori (FALSA) tekst-minuskle.

    La kodo de la funkcio disponeblas ĉi tie.

    Ekzemplo: kiel anstataŭigi aŭ forigi ĉenojn per regeksoj

    Kelkaj el niaj registroj enhavas kreditkartajn nombrojn. Ĉi tiu informo estas konfidenca, kaj vi eble volas anstataŭigi ĝin per io aŭ forigi tute. Ambaŭ taskoj povas esti plenumitaj helpe de la funkcio RegExpReplace . Kiel? En dua scenaro, ni anstataŭigos per malplena ĉeno.

    En nia specimena tabelo, ĉiuj kartnombroj havas 16 ciferojn, kiuj estas skribitaj en 4 grupoj apartigitaj per spacoj. Por trovi ilin, ni reproduktas la ŝablonon uzante ĉi tiun regulan esprimon:

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

    Por anstataŭigo, la sekva ĉeno estas uzata:

    Anstataŭaĵo : XXXX XXXX XXXXXXXX

    Kaj jen kompleta formulo por anstataŭigi kreditkartajn nombrojn per nesentemaj informoj:

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

    Per la regex kaj anstataŭiga teksto en apartaj ĉeloj ( A2 kaj B2), la formulo funkcias same bone:

    En Excel, "forigi" estas aparta kazo de "anstataŭigo". Por forigi kreditkartajn nombrojn, simple uzu malplenan ĉenon ("") por la argumento anstataŭaĵo :

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

    Konsileto. Por akiri rig de malplenaj linioj en la rezultoj, vi povas uzi alian RegExpReplace-funkcion kiel montrite en ĉi tiu ekzemplo: Kiel forigi malplenajn liniojn uzante regex.

    Por pliaj informoj, bonvolu vidi:

    • Kiel anstataŭigi ĉenojn en Excel per regex
    • Kiel forigi ĉenojn per regex
    • Kiel forigi blankspacon per regeks

    Regex-Iloj por kongrui, ĉerpi , anstataŭigi kaj forigi subŝnurojn

    La uzantoj de nia Ultimate Suite povas akiri la tutan potencon de regulaj esprimoj sen enmeti ununuran linion de kodo en siaj laborlibroj. La tuta necesa kodo estas skribita de niaj programistoj kaj glate integrita en via Excel dum instalado.

    Malkiel la VBA-funkcioj diskutitaj supre, la funkcioj de Ultimate Suite estas bazitaj en .NET, kio donas du ĉefajn avantaĝojn:

    1. Vi povas uzi regulajn esprimojn en normalaj .xlsx laborlibroj sen aldoni ajnan VBA-kodon kaj devi konservi ilin kiel makro-ebligitaj dosieroj.
    2. .NET Regex-motoro subtenas plenfunkciajn klasikajnregulaj esprimoj, kiuj ebligas al vi konstrui pli kompleksajn ŝablonojn.

    Kiel uzi Regex en Excel

    Kun la Ultimate Suite instalita, uzi regulajn esprimojn en Excel estas tiel simpla kiel ĉi tiuj du paŝoj :

    1. En la langeto Ablebits Data , en la grupo Teksto , alklaku Regex-Iloj .

    2. En la panelo Regex Tools , faru la jenon:
      • Elektu la fontajn datumojn.
      • Enigu vian regex-ŝablonon.
      • Elektu la deziratan opcion: Kongrui , Eltiri , Forigi Anstataŭigi .
      • Por ricevi la rezulton kiel formulo kaj ne valoro, elektu la markobutonon Enmeti kiel formulon .
      • Premu la agbutonon.

      Ekzemple, por forigi kreditkartajn nombrojn el ĉeloj A2:A6, ni agordas ĉi tiujn agordojn:

    Poste, funkcio AblebitsRegex estos enmetita en novan kolumnon dekstre de via originalo. datumoj. En nia kazo, la formulo estas:

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

    Iam la formulo estas tie, vi povas redakti, kopii aŭ movi ĝin kiel ajna denaska formulo.

    Kiel enmeti Regex-formulon rekte en ĉelon

    La funkcioj de AblebitsRegex ankaŭ povas esti enmetitaj rekte en ĉelon sen uzi la interfacon de la aldonaĵo. Jen kiel:

    1. Alklaku la fx butonon sur la formulbreto aŭ Enmeti Funkcion sur la langeto Formuloj .
    2. En la dialogkesto Enmeti Funkcion , elektu la AblebitsUDFs kategorion, elektu la interesan funkcion, kaj alklaku OK.

    3. Difinu la argumentojn de la funkcio kiel vi kutime faras kaj alklaku OK. Farita!

    Por pliaj informoj, bonvolu vidi Regex-Ilojn por Excel.

    Tiel uzi regulajn esprimojn por kongrui, ĉerpi, anstataŭigi kaj forigi tekston en Excel-ĉeloj. Mi dankas vin pro legado kaj antaŭĝojas vidi vin en nia blogo venontsemajne!

    Haveblaj elŝutoj

    Excel Regex - ekzemploj de formuloj (.xlsm-dosiero)

    Ultimate Suite - provversio (.exe dosiero)

    aŭ .NET bazita) aŭ instali triajn ilojn subtenantaj regeksojn.

    Excel Regex trompfolio

    Ĉu regex ŝablono estas tre simpla aŭ ekstreme altnivela, ĝi estas konstruita uzante la komunan sintakson. Ĉi tiu lernilo ne celas instrui al vi regulajn esprimojn. Por tio, ekzistas multaj rimedoj interrete, de senpagaj lerniloj por komencantoj ĝis superaj kursoj por progresintaj uzantoj.

    Malsupre ni provizas rapidan referencon al la ĉefaj RegEx-ŝablonoj, kiuj helpos vin ekkompreni la bazaĵojn. Ĝi ankaŭ povas funkcii kiel via trompfolio kiam vi studas pliajn ekzemplojn.

    Se vi estas komforta kun regulaj esprimoj, vi povas salti rekte al la RegExp-funkcioj.

    Signoj

    Ĉi tiuj estas la plej ofte uzataj ŝablonoj por kongrui kun certaj signoj.

    Skemo Priskribo Ekzemplo Kongruoj
    . Sovrankaraktero: kongruas kun ajna unuopa signo krom linio-rompo .ot punkto , varma , poto , @ot
    \d Cifera signo: ajna unuopa cifero de 0 ĝis 9 \d En a1b , kongruas 1
    \D Ajna signo kiu NE estas cifero \D En a1b , kongruas kun a kaj b
    \s Signo: spaceto, langeto, nova linio kaj kaleŝoreveno .\s. En 3 cendoj , kongruas kun 3 c
    \S Ajnane-blankspacsigno \S+ En 30 cendoj , kongruas kun 30 kaj cendoj
    \w Vortsigno: ajna ASCII litero, cifero aŭ substreko \w+ En 5_katoj*** , kongruas kun 5_katoj
    \W Ajna signo kiu NE estas alfanombra signo aŭ substreko \W+ En 5_katoj*** , kongruas ***
    \t Tab
    \n Nova linio \n\d+ En la dulinio ĉeno malsupre, kongruas kun 10

    5 katoj

    10 hundoj

    \ Eskapas specialan signifon de signo, do vi povas serĉu ĝin \.

    \w+\.

    Eskapas punkton por ke vi povu trovi la laŭvortan "." signo en ĉeno

    Sinjoro , Sinjorino , Prof.

    Klasoj de signoj

    Uzante ĉi tiujn ŝablonojn, vi povas kongrui elementojn de malsamaj signoj.

    Skemo Priskribo Ekzemplo Kongruas
    [signoj] Kongruas kun ajna unuopa signo en la krampoj d[oi]g hundo kaj fosi
    [^signoj] Kongruas kun ajna unuopa signo NE en la krampoj d[^oi]g Kongruas dag, dug , d1g

    Ne kongruas hundo kaj dig

    [de–al] Kongruas kun ajna signo en la intervalo inter lakrampoj [0-9]

    [a-z]

    [A-Z]

    Ajna cifero de 0 ĝis 9

    Ajna minuskla litero

    Ajna unuopa majuskla litero

    Kvantigiloj

    Kvantigiloj estas specialaj esprimoj, kiuj specifas la nombron da kongruaj signoj. Kvantigilo ĉiam validas por la signo antaŭ ĝi.

    <; 16>
    Modelo Priskribo Ekzemplo Kongruoj
    * Nul aŭ pli da okazoj 1a* 1, 1a , 1aa, 1aaa , ktp.
    + Unu aŭ pluraj okazoj po+ En poto , kongruas po

    En malbona , kongruas po

    ? Nul aŭ unu okazo roa?d vojo, bastono
    *? Nul aŭ pli da okazoj, sed kiel eble plej malmultaj 1a*? En 1a , 1aa kaj 1aaa , kongruoj 1a
    +? Unu aŭ pluraj okazoj, sed kiel eble plej malmultaj po+? En poto kaj malbona , kongruas po
    ?? Nul aŭ unu okazo , sed kiel eble malpli roa?? En vojo kaj stango , kongruas ro
    {n} Kongruas kun la antaŭa ŝablono n fojojn \d{3} Ĝuste 3 ciferoj
    {n ,} Kongruas kun la antaŭa ŝablono n aŭ pli da fojoj \d{3,} 3 aŭ pli da ciferoj
    {n,m} Kongruas kun laantaŭa ŝablono inter n kaj m fojojn \d{3,5} De 3 ĝis 5 ciferoj

    Grupado

    Grupkonstruaĵoj estas uzataj por kapti subĉenon el la fonta ĉeno, do vi povas fari iun operacion per ĝi.

    Sintakso Priskribo Ekzemplo Kongruoj
    (ŝablono) Kaptanta grupo: kaptas kongruan subĉenon kaj asignas al ĝi ordan nombron (\d+) En 5 katoj kaj 10 hundoj , kaptas 5 (grupo 1) kaj 10 (grupo 2)
    (?:pattern) Nekapta grupo: kongruas kun grupo sed ne kaptas ĝin (\d+)(?: hundoj) En 5 katoj kaj 10 hundoj , kaptas 10
    \1 Enhavo de grupo 1 (\d+)\+(\d+)=\2\+\1 Kongruas 5+10=10+5 kaj kaptas 5 kaj 10 , kiuj estas en kaptaj grupoj
    \2 Enhavo de grupo 2

    Ankroj

    Ankroj specifas pozicion en la eniga ĉeno kie serĉi kongruo.

    Ankoro Priskribo Ekzemplo Kongruoj
    ^ Komenco de ĉeno

    Noto: [^inter krampoj] signifas "ne"

    ^\d+ Ajna nombro da ciferoj ĉe la komenco de la ŝnuro.

    En 5 katoj kaj 10 hundoj , kongruas 5

    $ Fino de la ĉeno \d+$ Ajna nombro da ciferoj ĉe la fino de la ĉeno.

    En 10Y

    (?<=) Pozitiva rigardo malantaŭe (?<=Y)X Kongruas kun esprimo X kiam ĝi estas antaŭita de Y (t.e. se estas Y malantaŭ X)
    (? Negativa rigardo malantaŭe (? Kongruas kun esprimo X kiam ĝi NE estas antaŭita de Y

    Nun kiam vi konas la esencon, ni transiru al la plej interesa parto - uzante regeksoj pri realaj datumoj por analizi ĉenojn kaj trovi la bezonatajn informojn. Se vi bezonas pli da detaloj pri la sintakso, la Mikrosofta gvidilo pri Regula Esprima Lingvo povas montriĝi helpema.

    Personadaj RegEx-funkcioj por Excel

    Kiel jam menciite, Microsoft Excel ne havas enkonstruitajn RegEx-funkciojn. Por ebligi regulajn esprimojn, ni kreis tri kutimajn VBA-funkciojn (alinome uzant-difinitajn funkciojn). Vi povas kopii la kodojn de la malsupre ligitaj paĝoj aŭ de nia specimeno. laborlibro, kaj poste algluu viajn proprajn Excel-dosierojn.

    Kiel funkcias VBA RegExp-funkcioj

    Ĉi tiu sekcio klarigas la internan mekanikon kaj povas esti int Estas al tiuj, kiuj volas scii precize kio okazas ĉe la backend.

    Por komenci uzi regulajn esprimojn en VBA, vi devas aŭ aktivigi la RegEx-objektan referencbibliotekon aŭ uzi la funkcion CreateObject. Por ŝpari al vi la problemon agordi la referencon en la VBA-redaktilo, ni elektis la lastan aliron.

    La RegExp-objekto havas 4 ecojn:

    • Skemo - estas la ŝablono por kongrui en la eniga ĉeno.
    • Tutmonda - kontrolas ĉu trovi ĉiujn kongruojn en la eniga ĉeno aŭ nur la unua. En niaj funkcioj, ĝi estas agordita al Vera por akiri ĉiujn kongruojn .
    • MultiLine - determinas ĉu kongrui la ŝablonon trans liniorompoj en plurliniaj ŝnuroj aŭ nur en la unua linio. En niaj kodoj, ĝi estas agordita al Vera por serĉi en ĉiu linio .
    • IgnoreCase - difinas ĉu regula esprimo estas majuskla (defaŭlte) aŭ majuskle. nesentema (agordita al Vera). En nia kazo, tio dependas de kiel vi agordas la laŭvolan parametron match_case . Defaŭlte, ĉiuj funkcioj estas majuskleksentemaj .

    VBA RegExp-limigoj

    Excel VBA efektivigas la esencajn regex-padronojn, sed al ĝi mankas multaj altnivelaj funkcioj. havebla en .NET, Perl, Java, kaj aliaj regex motoroj. Ekzemple, VBA RegExp ne subtenas enliniajn modifilojn kiel ekzemple (?i) por majuskle-nedistinga kongruo aŭ (?m) por plurlinia reĝimo, postrigardo, POSIX-klasoj, por nomi kelkajn.

    Excel Regex Match-funkcio

    La RegExpMatch -funkcio serĉas enigan ĉenon tekston kiu kongruas kun regula esprimo kaj liveras VERA se kongruo estas trovita, FALSE alie.

    RegExpMatch (teksto, ŝablono, [ match_case])

    Kie:

    • Teksto (postulata) - unu aŭ pluraj ĉenoj por serĉi.
    • Skemo ( bezonata) - la regulaesprimo kongrua.
    • Match_case (laŭvola) - kongrua tipo. VERA aŭ preterlasita - uskle-distinga; FALSO - nedistinga majuskloj

    La kodo de la funkcio estas ĉi tie.

    Ekzemplo: kiel uzi regulajn esprimojn por kongrui ĉenojn

    En la suba datumaro, supozu, ke vi volas por identigi la enskribojn enhavantajn SKU-kodojn.

    Konsiderante ke ĉiu SKU komenciĝas per 2 majuskloj, sekvataj de streketo, sekvita de 4 ciferoj, vi povas kongrui ilin per la sekva esprimo.

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

    Kie [A-Z]{2} signifas iujn ajn 2 majusklojn de A ĝis Z kaj \d{4 } signifas iujn ajn 4 ciferojn de 0 ĝis 9. Vortlimo \b indikas ke SKU estas aparta vorto kaj ne parto de pli granda ĉeno.

    Kun la ŝablono establita, komencu tajpi formulon kiel vi kutime faras , kaj la nomo de funkcio aperos en la listo proponita de la Aŭtomata kompletigo de Excel:

    Suponante, ke la origina ĉeno estas en A5, la formulo iras jene:

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

    Por oportuno, vi povas enigi la regulan esprimon en aparta ĉelo kaj uzi absolutan referencon ($A$2) por la ŝablono argumento t. Ĉi tio certigas, ke la ĉela adreso restos senŝanĝa kiam vi kopias la formulon al aliaj ĉeloj:

    =RegExpMatch(A5, $A$2)

    Por montri viajn proprajn tekstajn etikedojn anstataŭ VERA kaj FALSA, nestu RegExpMatch en la funkcio IF kaj specifu la deziratajn tekstojn en la valoro_se_vera kaj valoro_se_malvera plus 5 donas 15 , kongruas kun 15

    \b Vortlimo \bjoy\b Kongruas ĝojo kiel aparta vorto, sed ne en ĝua . \B NE vortlimo \Bjoy\B Kongruas ĝojo en ĝuebla , sed ne kiel aparta vorto.

    Alterna (OR)konstruaĵo

    La alterna operando ebligas la OR-logikon, do vi povas kongrui aŭ tiun aŭ alian elementon.

    <> 14>Priskribo
    Konstrui Ekzemplo Kongruoj

    Michael Brown estas diligenta teknologia entuziasmulo kun pasio por simpligi kompleksajn procezojn uzante programarajn ilojn. Kun pli ol jardeko da sperto en la teknologia industrio, li perfektigis siajn kapablojn en Microsoft Excel kaj Outlook, same kiel Google Sheets kaj Docs. La blogo de Mikaelo estas dediĉita al kunhavigi siajn sciojn kaj kompetentecon kun aliaj, provizante facilajn sekvajn konsiletojn kaj lernilojn por plibonigi produktivecon kaj efikecon. Ĉu vi estas sperta profesiulo aŭ komencanto, la blogo de Mikaelo ofertas valorajn komprenojn kaj praktikajn konsilojn por eltiri la plej multajn el ĉi tiuj esencaj programaj iloj.