Regex pentru a extrage șiruri de caractere în Excel (una sau toate potrivirile)

  • Imparte Asta
Michael Brown

În acest tutorial, veți învăța cum să utilizați expresiile regulate în Excel pentru a găsi și extrage subșiruri care corespund unui anumit model.

Microsoft Excel oferă o serie de funcții pentru extragerea textului din celule. Aceste funcții pot face față majorității provocărilor legate de extragerea de șiruri de caractere din foile de calcul. Majoritatea, dar nu toate. Când funcțiile Text se poticnesc, expresiile regulate vin în ajutor. Stați... Excel nu are funcții RegEx! E adevărat, nu are funcții încorporate. Dar nimic nu vă împiedică să folosiți propriile funcții :)

    Funcția Excel VBA Regex pentru a extrage șiruri de caractere

    Pentru a adăuga o funcție Regex Extract personalizată în Excel, lipiți următorul cod în editorul VBA. Pentru a activa expresiile regulate în VBA, folosim obiectul încorporat Microsoft RegExp.

    Public Function RegExpExtract(text As String , pattern As String , Optional instance_num As Integer = 0, Optional match_case As Boolean = True ) Dim text_matches() As String Dim matches_index As Integer On Error GoTo ErrHandl RegExpExtract = "" Set regex = CreateObject ("VBScript.RegExp" ) regex.pattern = pattern regex.Global = True regex.MultiLine = True If True = match_case Thenregex.ignorecase = False Else regex.ignorecase = True End If Set matches = regex.Execute(text) If 0 <matches.Count Then If (0 = instance_num) Then ReDim text_matches(matches.Count - 1, 0) For matches_index = 0 To matches.Count - 1 text_matches(matches_index, 0) = matches.Item(matches_index) Next matches_index RegExpExtract = text_matches Else RegExpExtract = matches.Item(instance_num - 1) EndIf End If Exit Function ErrHandl: RegExpExtract = CVErr(xlErrValue) End Function

    Dacă aveți puțină experiență cu VBA, un ghid de utilizare pas cu pas se poate dovedi util: Cum să inserați cod VBA în Excel.

    Notă: Pentru ca funcția să funcționeze, asigurați-vă că ați salvat fișierul ca fișier registru de lucru activat de macro (.xlsm).

    Sintaxa RegExpExtract

    The RegExpExtract caută într-un șir de intrare valorile care corespund unei expresii regulate și extrage una sau toate valorile care corespund.

    Funcția are următoarea sintaxă:

    RegExpExtract(text, model, [instance_num], [match_case])

    Unde:

    • Text (obligatoriu) - șirul de text în care se efectuează căutarea.
    • Model (obligatoriu) - expresia regulată care trebuie să se potrivească. Atunci când este furnizată direct într-o formulă, modelul trebuie să fie inclus între ghilimele duble.
    • Număr_instanță (opțional) - un număr de serie care indică instanța care trebuie extrasă. Dacă se omite, se returnează toate corespondențele găsite (implicit).
    • Cazul_de_corespondență (opțional) - definește dacă trebuie să se potrivească sau să se ignore majusculele și minusculele din text. Dacă TRUE sau este omis (valoare implicită), se efectuează o potrivire sensibilă la majuscule și minuscule; dacă FALSE - nu este sensibilă la majuscule și minuscule.

    Funcția funcționează în toate versiunile de Excel 365, Excel 2021, Excel 2019, Excel 2016, Excel 2013 și Excel 2010.

    4 lucruri pe care ar trebui să le știți despre RegExpExtract

    Pentru a utiliza eficient funcția în Excel, trebuie să țineți cont de câteva lucruri importante:

    1. În mod implicit, funcția returnează toate meciurile găsite în celulele învecinate, așa cum se arată în acest exemplu. Pentru a obține o anumită apariție, furnizați un număr corespunzător pentru număr_instanță argument.
    2. În mod implicit, funcția este Sensibil la majuscule și minuscule Pentru o potrivire care nu ține cont de majuscule și minuscule, setați match_case la FALSE. Din cauza limitărilor VBA, construcția care nu ține cont de majuscule și minuscule (?i) nu va funcționa.
    3. În cazul în care un nu s-a găsit un model valid , funcția nu returnează nimic (șir de caractere gol).
    4. În cazul în care modelul nu este valabil , apare o eroare #VALUE!

    Înainte de a începe să folosiți această funcție personalizată în foile de lucru, trebuie să înțelegeți de ce este capabilă, nu-i așa? Exemplele de mai jos acoperă câteva cazuri de utilizare comune și explică de ce comportamentul poate fi diferit în Dynamic Array Excel (Microsoft 365 și Excel 2021) și în Excel tradițional (2019 și versiunile mai vechi).

    Notă. Exemplele de regex de afară sunt scrise pentru seturi de date destul de simple. Nu putem garanta că vor funcționa perfect în foile dvs. de lucru reale. Cei care au experiență cu regex vor fi de acord că scrierea expresiilor regulate este un drum nesfârșit spre perfecțiune - aproape întotdeauna există o modalitate de a o face mai elegantă sau capabilă să gestioneze o gamă mai largă de date de intrare.

    Regex pentru a extrage numărul din șirul de caractere

    Urmând maxima de bază a predării "de la simplu la complex", vom începe cu un caz foarte simplu: extragerea unui număr dintr-un șir de caractere.

    Primul lucru pe care trebuie să-l decideți este ce număr să recuperați: primul, ultimul, o anumită apariție sau toate numerele.

    Extrageți primul număr

    Aceasta este cât se poate de simplă. Având în vedere că \d înseamnă orice cifră de la 0 la 9, iar + înseamnă de una sau mai multe ori, expresia noastră regulată are următoarea formă:

    Model : \d+

    Set număr_instanță la 1 și veți obține rezultatul dorit:

    =RegExpExtract(A5, "\d+", 1)

    Unde A5 este șirul original.

    Pentru comoditate, puteți introduce modelul într-o celulă predefinită ($A$2 ) și blocați adresa acesteia cu semnul $:

    =RegExpExtract(A5, $A$2, 1)

    Obțineți ultimul număr

    Pentru a extrage ultimul număr dintr-un șir de caractere, iată modelul de utilizat:

    Model : (\d+)(?!.*\d)

    Pentru a exprima acest lucru, folosim un lookahead negativ (?!.*\d), ceea ce înseamnă că în dreapta modelului nu trebuie să existe nicio altă cifră (\d), indiferent de câte alte caractere se află înaintea ei.

    =RegExpExtract(A5, "(\d+)(?!.*\d)")

    Sfaturi:

    • Pentru a obține un apariție specifică , utilizați \d+ pentru model și un număr de serie corespunzător pentru număr_instanță .
    • Formula de extragere toate numerele este discutată în exemplul următor.

    Regex pentru a extrage toate meciurile

    Împingând exemplul nostru un pic mai departe, să presupunem că doriți să obțineți toate numerele dintr-un șir, nu doar unul singur.

    După cum probabil vă amintiți, numărul de potriviri extrase este controlat de opțiunea opțională număr_instanță Valoarea implicită este "all matches", deci este suficient să omiteți acest parametru:

    =RegExpExtract(A2, "\d+")

    Formula funcționează foarte bine pentru o singură celulă, dar comportamentul diferă în matricea dinamică Excel și în versiunile non-dinamice.

    Excel 365 și Excel 2021

    Datorită suportului pentru matricele dinamice, o formulă obișnuită se revarsă automat în atâtea celule câte celule sunt necesare pentru a afișa toate rezultatele calculate. În termeni de Excel, acest lucru se numește interval revărsat:

    Excel 2019 și versiuni inferioare

    În Excel-ul pre-dinamic, formula de mai sus ar returna doar o singură potrivire. Pentru a obține mai multe potriviri, trebuie să o transformați într-o formulă de matrice. Pentru aceasta, selectați un interval de celule, introduceți formula și apăsați Ctrl + Shift + Enter pentru a o completa.

    Un dezavantaj al acestei abordări este o mulțime de erori #N/A care apar în "celule suplimentare". Din păcate, nu se poate face nimic în acest sens (nici IFERROR, nici IFNA nu le pot remedia, din păcate).

    Extrageți toate corespondențele dintr-o singură celulă

    Atunci când se procesează o coloană de date, este evident că abordarea de mai sus nu va funcționa. În acest caz, o soluție ideală ar fi returnarea tuturor corespondențelor într-o singură celulă. Pentru a face acest lucru, serviți rezultatele lui RegExpExtract funcției TEXTJOIN și separați-le cu orice delimitator doriți, de exemplu o virgulă și un spațiu:

    =TEXTJOIN(", ", TRUE, RegExpExtract(A5, "\d+"))

    Notă. Deoarece funcția TEXTJOIN este disponibilă numai în Excel pentru Microsoft 365, Excel 2021 și Excel 2019, formula nu va funcționa în versiunile mai vechi.

    Regex pentru a extrage textul din șirul de caractere

    Extragerea textului dintr-un șir alfanumeric este o sarcină destul de dificilă în Excel. Cu regex, acest lucru devine la fel de ușor ca o plăcintă. Trebuie doar să utilizați o clasă negată pentru a potrivi tot ceea ce nu este o cifră.

    Model : [^\d]+

    Pentru a obține subșiruri în celule individuale (intervalul de deversare), formula este:

    =RegExpExtract(A5, "[^\d]+")

    Pentru a afișa toate corespondențele într-o singură celulă, combinați funcția RegExpExtract în TEXTJOIN astfel:

    =TEXTJOIN("", TRUE, RegExpExtract(A5, "[^\d]+"))

    Regex pentru a extrage adresa de e-mail din șir

    Pentru a extrage o adresă de e-mail dintr-un șir care conține o mulțime de informații diferite, scrieți o expresie regulată care reproduce structura adresei de e-mail.

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

    Descompunând acest regex, iată ce obținem:

    • [\w\.\-]+ este un nume de utilizator care poate include 1 sau mai multe caractere alfanumerice, caractere de subliniere, puncte și liniuțe.
    • Simbolul @
    • [A-Za-z0-0-9\.\-]+ este un nume de domeniu format din: litere majuscule și minuscule, cifre, liniuțe și puncte (în cazul subdomeniilor). Sublinierile nu sunt permise aici, de aceea se folosesc 3 seturi de caractere diferite (cum ar fi A-Z a-z și 0-9) în loc de \w care se potrivește cu orice literă, cifră sau subliniere.
    • \..[A-Za-z]{2,24} este un domeniu de nivel superior. Este format dintr-un punct urmat de litere majuscule și minuscule. Majoritatea domeniilor de nivel superior au o lungime de 3 litere (de exemplu, .com .org, .edu etc.), dar, teoretic, poate conține între 2 și 24 de litere (cel mai lung TLD înregistrat).

    Presupunând că șirul se află în A5 și modelul în A2, formula pentru a extrage o adresă de e-mail este:

    =RegExpExtract(A5, $A$2)

    Regex pentru a extrage domeniul din e-mail

    Când vine vorba de extragerea domeniului de e-mail, primul gând care îți vine în minte este folosirea unui grup de captură pentru a găsi textul care urmează imediat după caracterul @.

    Model : @([A-Za-z0-9\.\-]+\.[A-Za-z]{2,24})

    Trimiteți-o funcției noastre RegExp:

    =RegExpExtract(A5, "@([A-Za-z0-9\.\-]+\.[A-Za-z]{2,24})")

    Și veți obține acest rezultat:

    În cazul expresiilor regulate clasice, tot ceea ce se află în afara unui grup de captură nu este inclus în extracție. Nimeni nu știe de ce VBA RegEx funcționează diferit și captează și "@". Pentru a scăpa de el, puteți elimina primul caracter din rezultat înlocuindu-l cu un șir gol.

    =REPLACE(RegExpExtract(A5, "@([a-z\d][a-z\d\d\-\.]*\.[a-z]{2,})", 1, FALSE), 1, 1, 1, "")

    Expresie regulată pentru extragerea numerelor de telefon

    Numerele de telefon pot fi scrise în mai multe moduri diferite, motiv pentru care este aproape imposibil de găsit o soluție care să funcționeze în toate circumstanțele. Cu toate acestea, puteți nota toate formatele utilizate în setul de date și puteți încerca să le potriviți.

    Pentru acest exemplu, vom crea un regex care va extrage numerele de telefon în oricare dintre aceste formate:

    (123) 345-6789

    (123) 345 6789

    (123)3456789

    123-345-6789

    123.345.6789

    123 345 6789

    1233456789

    Model : \(?\d{3}[-\. \)]*\d{3}[-\. ]?\d{4}\b

    • Prima parte \(?\d{3} se potrivește cu zero sau o paranteză de deschidere urmată de trei cifre d{3}.
    • Partea [-\. \)]* înseamnă orice caracter din parantezele pătrate care apare de 0 sau mai multe ori: cratimă, punct, spațiu sau paranteză de închidere.
    • În continuare, avem din nou trei cifre d{3} urmate de orice liniuță, punct sau spațiu [-\. ]? care apare 0 sau 1 dată.
    • După aceasta, există un grup de patru cifre \d{4}.
    • În cele din urmă, există un cuvânt limită \b care definește faptul că un număr de telefon pe care îl căutăm nu poate face parte dintr-un număr mai mare.

    Formula completă are această formă:

    =RegExpExtract(A5, "\(?\d{3}[-\. \)]*\d{3}[-\. ]?\d{4}\b")

    Rețineți că regex-ul de mai sus poate returna câteva rezultate fals-pozitive, cum ar fi 123) 456 7899 sau (123 456 7899. Versiunea de mai jos rezolvă aceste probleme. Cu toate acestea, această sintaxă funcționează numai în funcțiile VBA RegExp, nu și în expresiile regulate clasice.

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

    Regex pentru a extrage data din șirul de caractere

    O expresie regulată pentru extragerea unei date depinde de formatul în care apare data în cadrul unui șir de caractere. De exemplu:

    Pentru a extrage date precum 1/1/21 sau 01/01/2021, regexul este: \d{1,2}\/\d{1,2}\/(\d{4}

    Se caută un grup de 1 sau 2 cifre d{1,2} urmat de o bară oblică, urmat de un alt grup de 1 sau 2 cifre, urmat de o bară oblică, urmat de un grup de 4 sau 2 cifre (\d{4}prima condiție este în alternanță sau construcția OR se potrivește, celelalte condiții nu sunt verificate.

    Pentru a prelua date cum ar fi 1-Jan-21 sau 01-Jan-2021, modelul este: \d{1,2}-[A-Za-z]{3}-\d{2,4}

    Se caută un grup de 1 sau 2 cifre, urmat de o cratimă, urmat de un grup de 3 litere majuscule sau minuscule, urmat de o cratimă, urmat de un grup de 4 sau 2 cifre.

    După combinarea celor două modele, obținem următorul regex:

    Model : \b\d{1,2}[\/-](\d{1,2}

    Unde:

    • Prima parte este formată din 1 sau 2 cifre: \d{1,2}
    • A doua parte este fie 1 sau 2 cifre, fie 3 litere: (\d{1,2}
    • A treia parte este un grup de 4 sau 2 cifre: (\d{4}
    • Delimitatorul este fie o bară oblică, fie o cratimă: [\/-]
    • O limită de cuvânt \b este plasată pe ambele părți pentru a face clar faptul că o dată este un cuvânt separat și nu o parte a unui șir mai mare.

    După cum puteți vedea în imaginea de mai jos, extrage cu succes datele și elimină subșiruri, cum ar fi 11/22/333. Cu toate acestea, încă mai returnează rezultate fals pozitive. În cazul nostru, subșirul 11-ABC-2222 din A9 corespunde din punct de vedere tehnic formatului de dată dd-mmm-yyyy și, prin urmare, este extrasă.

    Pentru a elimina falsurile pozitive, puteți înlocui partea [A-Za-z]{3} cu o listă completă de abrevieri lunare din 3 litere:

    Model : \b\d{1,2}[\/-](\d{1,2}

    Pentru a ignora majuscula literelor, am setat ultimul argument al funcției noastre personalizate la FALSE:

    =RegExpExtract(A5, $A$2, 1, FALSE)

    Și de data aceasta, obținem un rezultat perfect:

    Regex pentru a extrage ora din șirul de caractere

    Pentru a obține timp în hh:mm sau hh:mm:ss următoarea expresie va funcționa foarte bine.

    Model : \b(0?[0-9]

    Descompunând acest regex, puteți vedea 2 părți separate prin

    Expresia 1 : \b(0?[0-9]

    Obține orele cu AM/PM.

    Ora poate fi orice număr de la 0 la 12. Pentru a-l obține, folosim construcția OR ([0-9]

    • [0-9] se potrivește cu orice număr de la 0 la 9
    • 1[0-2] se potrivește cu orice număr de la 10 la 12

    Minute [0-5]\d este orice număr de la 00 la 59.

    Al doilea (:[0-5]\d)? este, de asemenea, orice număr de la 00 la 59. Cuantificatorul ? înseamnă zero sau o apariție, deoarece secundele pot fi sau nu incluse în valoarea timpului.

    Expresia 2 : \b([0-9]

    Extrage orele fără AM/PM.

    The oră partea poate fi orice număr de la 0 la 32. Pentru a o obține, se folosește o construcție OR diferită ([0-9]

    • [0-9] se potrivește cu orice număr de la 0 la 9
    • [0-1]\d se potrivește cu orice număr de la 00 la 19
    • 2[0-3] se potrivește cu orice număr de la 20 la 23

    The minut și al doilea părțile sunt aceleași ca în expresia 1 de mai sus.

    Se adaugă o anticipație negativă (?!:) la șirurile de sărituri, cum ar fi 20:30:80.

    Deoarece PM/AM pot fi scrise cu majuscule sau minuscule, funcția nu ține cont de majuscule și minuscule:

    =RegExpExtract(A5, $A$2, 1, FALSE)

    Sperăm că exemplele de mai sus v-au dat câteva idei despre cum să utilizați expresiile regulate în foile de lucru Excel. Din păcate, nu toate caracteristicile expresiilor regulate clasice sunt acceptate în VBA. Dacă sarcina dvs. nu poate fi îndeplinită cu VBA RegExp, vă încurajez să citiți următoarea parte care discută funcții Regex .NET mult mai puternice.

    Funcție Regex personalizată bazată pe .NET pentru a extrage text în Excel

    Spre deosebire de funcțiile VBA RegExp, care pot fi scrise de orice utilizator Excel, .NET RegEx este domeniul dezvoltatorului. Microsoft .NET Framework suportă o sintaxă de expresii regulate completă, compatibilă cu Perl 5. Acest articol nu vă va învăța cum să scrieți astfel de funcții (nu sunt programator și nu am nici cea mai mică idee despre cum să fac asta :)

    Patru funcții puternice procesate de motorul standard .NET RegEx sunt deja scrise de dezvoltatorii noștri și incluse în Ultimate Suite. Mai jos, vom demonstra câteva utilizări practice ale funcției special concepute pentru extragerea de text în Excel.

    Sfat. Pentru informații despre sintaxa .NET Regex, consultați Limbajul de expresii regulate .NET.

    Cum se extrag înțepăturile în Excel folosind expresii regulate

    Presupunând că aveți instalată cea mai recentă versiune de Ultimate Suite, extragerea textului cu ajutorul expresiilor regulate se reduce la acești doi pași:

    1. Pe Date Ablebits în fila Text grup, faceți clic pe Instrumente Regex .
    2. Pe Instrumente Regex selectați datele sursă, introduceți modelul Regex și alegeți opțiunea Extras Pentru a obține rezultatul sub forma unei funcții personalizate, nu a unei valori, selectați opțiunea Introduceți ca o formulă După aceea, faceți clic pe caseta de selectare Extras buton.

    Rezultatele vor apărea într-o nouă coloană în dreapta datelor originale:

    Sintaxa AblebitsRegexExtract

    Funcția noastră personalizată are următoarea sintaxă:

    AblebitsRegexExtract(referință, expresie_regulară)

    Unde:

    • Referință (obligatoriu) - o referință la celula care conține șirul sursă.
    • Expresie_regulară (obligatoriu) - modelul regex care trebuie să se potrivească.

    Notă importantă! Funcția funcționează numai pe mașinile pe care este instalat Ultimate Suite for Excel.

    Note de utilizare

    Pentru a vă face curba de învățare mai ușoară și pentru a vă face experiența mai plăcută, vă rugăm să acordați atenție următoarelor puncte:

    1. Pentru a crea o formulă, puteți utiliza formula noastră Instrumente Regex , sau Excel's Funcția de inserție sau tastați numele complet al funcției într-o celulă. Odată ce formula este inserată, o puteți gestiona (edita, copia sau muta) ca orice formulă nativă.
    2. Modelul pe care îl introduceți în Instrumente Regex merge la cel de-al doilea argument. De asemenea, este posibil să păstrați o expresie regulată într-o celulă separată. În acest caz, utilizați doar o referință de celulă pentru cel de-al doilea argument.
    3. Funcția extrage prima potrivire găsită .
    4. În mod implicit, funcția este Sensibil la majuscule și minuscule Pentru o potrivire care nu ține cont de majuscule și minuscule, utilizați modelul (?i).
    5. În cazul în care nu se găsește o potrivire, se trimite o eroare #N/A.

    Regex pentru a extrage șirul dintre două caractere

    Pentru a obține text între două caractere, puteți utiliza fie un grup de captură, fie căutări indirecte.

    Să presupunem că doriți să extrageți textul dintre paranteze. Cel mai simplu este să folosiți un grup de captură.

    Modelul 1 : \[(.*?)\]

    Cu o privire pozitivă în urmă și în perspectivă, rezultatul va fi exact același.

    Modelul 2 : (?<=\[)(.*?)(?=\])

    Vă rugăm să acordați atenție faptului că grupul nostru de captură (.*?) efectuează o căutare leneșă pentru textul cuprins între două paranteze - de la primul [ la primul ]. Un grup de captură fără semnul întrebării (.*) ar face un căutare lacomă și să surprindă totul de la primul [ până la ultimul ].

    Cu modelul din A2, formula este următoarea:

    =AblebitsRegexExtract(A5, $A$2)

    Cum să obțineți toate meciurile

    După cum am menționat deja, funcția AblebitsRegexExtract poate extrage doar o singură potrivire. Pentru a obține toate potrivirile, puteți utiliza funcția VBA despre care am discutat mai devreme. Cu toate acestea, există o avertizare - VBA RegExp nu acceptă capturarea grupurilor, astfel încât modelul de mai sus va returna și caracterele "de delimitare", paranteze în cazul nostru.

    =TEXTJOIN(" ", TRUE, RegExpExtract(A5, $A$2))

    Pentru a scăpa de paranteze, înlocuiți-le cu șiruri de caractere goale (""") folosind această formulă:

    =SUBSTITUTE(SUBSTITUTE(TEXTJOIN(", ", ", TRUE, RegExpExtract(A5, $A$2)), "]", ""),"[","""),"[","")

    Pentru o mai bună lizibilitate, folosim o virgulă ca delimitator.

    Regex pentru a extrage textul dintre două șiruri de caractere

    Abordarea pe care am elaborat-o pentru extragerea textului dintre două caractere va funcționa și pentru extragerea textului dintre două șiruri de caractere.

    De exemplu, pentru a obține tot ce se află între "test 1" și "test 2", utilizați următoarea expresie regulată.

    Model : test 1(.*?)test 2

    Formula completă este:

    =AblebitsRegexExtract(A5, "test 1(.*?)test 2")

    Regex pentru a extrage domeniul din URL

    Chiar și cu ajutorul expresiilor regulate, extragerea numelor de domenii din URL-uri nu este o sarcină banală. Elementul cheie care face trucul este reprezentat de grupurile care nu captează. În funcție de obiectivul dvs. final, alegeți una dintre regexurile de mai jos.

    Pentru a obține un numele complet al domeniului inclusiv subdomeniile

    Model : (?:https?\:

    Pentru a obține un al doilea nivel domeniu fără subdomenii

    Model : (?:https?\:

    Acum, să vedem cum funcționează aceste expresii regulate pe un exemplu de "//www.mobile.ablebits.com" ca URL de probă:

    • (?:https?\:
    • \/\// - două bară oblică înainte (fiecare este precedată de o bară oblică inversă pentru a scăpa de semnificația specială a barei oblice înainte și a o interpreta literal).
    • (?:[A-Za-z\d\d\-\.]{2,255}\.)? - grup de necapturare pentru a identifica domeniile de al treilea nivel, al patrulea nivel, etc., dacă există ( mobil în exemplul nostru de URL). În primul model, acesta este plasat în cadrul unui grup de captare mai mare pentru ca toate aceste subdomenii să fie incluse în extracție. Un subdomeniu poate avea o lungime cuprinsă între 2 și 255 de caractere, de unde și cuantificatorul {2,255}.
    • ([A-Za-z\d\-]{1,63}\.[A-Za-z]{2,24}) - grup de captură pentru extragerea domeniului de al doilea nivel ( ablebits ) și domeniul de nivel superior ( com Lungimea maximă a unui domeniu de nivel 2 este de 63 de caractere, iar cel mai lung domeniu de nivel 1 existent în prezent conține 24 de caractere.

    În funcție de expresia regulată introdusă în A2, formula de mai jos va produce rezultate diferite:

    =AblebitsRegexExtract(A5, $A$2)

    Regex pentru a extrage numele complet al domeniului cu toate subdomeniile:

    Regex pentru a extrage un al doilea nivel domeniu fără subdomenii:

    Iată cum să extragem părți de text în Excel folosind expresii regulate. Vă mulțumesc pentru lectură și vă aștept pe blogul nostru săptămâna viitoare!

    Descărcări disponibile

    Excel Regex Exemple de extragere Regex (fișier .xlsm)

    Ultimate Suite versiunea de încercare (fișier .exe)

    Michael Brown este un pasionat de tehnologie dedicat, cu o pasiune pentru simplificarea proceselor complexe folosind instrumente software. Cu mai mult de un deceniu de experiență în industria tehnologiei, el și-a perfecționat abilitățile în Microsoft Excel și Outlook, precum și în Google Sheets și Docs. Blogul lui Michael este dedicat împărtășirii cunoștințelor și experienței sale cu alții, oferind sfaturi și tutoriale ușor de urmat pentru îmbunătățirea productivității și eficienței. Indiferent dacă sunteți un profesionist experimentat sau un începător, blogul lui Michael oferă informații valoroase și sfaturi practice pentru a profita la maximum de aceste instrumente software esențiale.