Excel RegEx nümunələri: düsturlarda müntəzəm ifadələrdən istifadə

  • Bunu Paylaş
Michael Brown

Niyə Excel düsturlarında müntəzəm ifadələrin dəstəklənmədiyini heç vaxt başa düşə bilmirsiniz? İndi, onlar :) Bizim fərdi funksiyalarımızla siz xüsusi nümunəyə uyğun gələn sətirləri asanlıqla tapa, əvəz edə, çıxara və silə bilərsiniz.

İlk baxışda Excel-də mətn sətri üçün ehtiyacınız olan hər şey var. manipulyasiyalar. Hmm... müntəzəm ifadələr haqqında nə demək olar? Vay, Excel-də daxili Regex funksiyaları yoxdur. Amma heç kim özümüzü yarada bilməyəcəyimizi demir :)

    Normal ifadə nədir?

    Normal ifadə (aka regex və ya <8)>regexp ) axtarış modelini təyin edən xüsusi kodlaşdırılmış simvol ardıcıllığıdır. Bu nümunədən istifadə edərək, sətirdə uyğun simvol birləşməsini tapa və ya məlumat daxiletməsini təsdiqləyə bilərsiniz. Əgər joker işarə ilə tanışsınızsa, regexləri joker işarələrin təkmil versiyası kimi düşünə bilərsiniz.

    Adi ifadələrin xüsusi simvollardan, operatorlardan və konstruksiyalardan ibarət öz sintaksisi var. Məsələn, [0-5] 0-dan 5-ə qədər istənilən tək rəqəmə uyğun gəlir.

    Daimi ifadələr JavaScript və VBA daxil olmaqla bir çox proqramlaşdırma dillərində istifadə olunur. Sonuncunun xüsusi funksiyalarımızı yaratmaq üçün istifadə edəcəyimiz xüsusi RegExp obyekti var.

    Excel regex-i dəstəkləyirmi?

    Təəssüf ki, Excel-də daxili Regex funksiyaları yoxdur. Düsturlarınızda müntəzəm ifadələrdən istifadə etmək üçün siz öz istifadəçi tərəfindən təyin edilmiş funksiyanızı (VBA) yaratmalısınız.arqumentlər:

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

    Daha çox düstur nümunələri üçün baxın:

    • Normal ifadələrdən istifadə edərək sətirləri necə uyğunlaşdırmaq olar
    • Regexes ilə Excel Data Validasiyası

    Excel Regex Extract funksiyası

    RegExpExtract funksiyası müntəzəm ifadəyə uyğun gələn alt sətirləri axtarır və bütün uyğunluqları çıxarır və ya xüsusi uyğunluq.

    RegExpExtract(mətn, nümunə, [nümunə_num], [uyğun_case])

    Burada:

    • Mətn (tələb olunur) - axtarış üçün mətn sətri in.
    • Nümunə (tələb olunur) - uyğunlaşmaq üçün müntəzəm ifadə.
    • Nümunə_num (isteğe bağlı) - hansı nümunənin göstəriləcəyini göstərən seriya nömrəsi çıxarış. Buraxılıbsa, bütün tapılmış uyğunluqları qaytarır (defolt).
    • Uyğun_case (isteğe bağlı) - mətn rejissorunun uyğun olub-olmamasını (DOĞRU və ya buraxılıb) və ya yoxlanılmasını (YANLIŞ) müəyyənləşdirir.

    Funksiyanın kodunu buradan əldə edə bilərsiniz.

    Məsələn: nizamlı ifadələrdən istifadə edərək sətirləri necə çıxarmaq olar

    Nümunəmizi bir qədər irəli apararaq, faktura nömrələrini çıxaraq. Bunun üçün hər hansı 7 rəqəmli rəqəmə uyğun gələn çox sadə regexdən istifadə edəcəyik:

    Nümunə : \b\d{7}\b

    Qoyun naxış A2 və siz bu yığcam və zərif düsturla işi görəcəksiz:

    =RegExpExtract(A5, $A$2)

    Nümunə uyğundursa, uyğunluq tapılmazsa, düstur faktura nömrəsini çıxarır - heç nə qaytarılmır.

    Daha çox nümunə üçün baxın: Excel-də sətirləri necə çıxarmaq olarregexdən istifadə etməklə.

    Excel Regex Dəyişdirmə funksiyası

    RegExpReplace funksiyası regexə uyğun gələn dəyərləri qeyd etdiyiniz mətnlə əvəz edir.

    RegExpReplace(mətn, nümunə, əvəzləmə) , [instance_num], [match_case])

    Burada:

    • Mətn (tələb olunur) - axtarış üçün mətn sətri.
    • Nümunə (tələb olunur) - uyğunlaşmaq üçün müntəzəm ifadə.
    • Əvəzetmə (tələb olunur) - uyğun gələn alt sətirləri əvəz etmək üçün mətn.
    • Nümunə_num (isteğe bağlı) - əvəz ediləcək nümunə. Defolt olaraq "bütün uyğunluqlar"dır.
    • Uyğun_rəqs (istəyə bağlı) - mətn rejissorunun uyğun olub-olmamasına (DOĞRU və ya buraxılmış) və ya nəzərə alınmamasına (YANLIŞ) nəzarət edir.

    Funksiya kodu burada mövcuddur.

    Məsələn: regexlərdən istifadə edərək sətirləri necə əvəz etmək və ya silmək olar

    Bəzi qeydlərimizdə kredit kartı nömrələri var. Bu məlumat məxfidir və siz onu nə iləsə əvəz etmək və ya tamamilə silmək istəyə bilərsiniz. Hər iki tapşırığı RegExpReplace funksiyasının köməyi ilə yerinə yetirmək olar. Necə? İkinci ssenaridə biz boş sətirlə əvəz edəcəyik.

    Nümunə cədvəlimizdə bütün kart nömrələri boşluqla ayrılmış 4 qrupda yazılmış 16 rəqəmdən ibarətdir. Onları tapmaq üçün biz bu müntəzəm ifadədən istifadə edərək nümunəni təkrarlayırıq:

    Nümunə : \b\d{4} \d{4} \d{4} \d{4}\ b

    Əvəz etmək üçün aşağıdakı sətir istifadə olunur:

    Əvəzetmə : XXXX XXXX XXXXXXXX

    Və burada kredit kartı nömrələrini həssas olmayan məlumatlarla əvəz etmək üçün tam düstur var:

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

    Ayrı xanalarda regex və əvəz mətni ilə ( A2 və B2), düstur eyni dərəcədə yaxşı işləyir:

    Excel-də "silmək" xüsusi "əvəz etmək" halıdır. Kredit kartı nömrələrini silmək üçün əvəzetmə arqumenti üçün boş sətirdən ("") istifadə edin:

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

    İpucu. Nəticələrdə boş sətirləri düzəltmək üçün bu nümunədə göstərildiyi kimi başqa RegExpReplace funksiyasından istifadə edə bilərsiniz: Regexdən istifadə edərək boş sətirləri necə silmək olar.

    Ətraflı məlumat üçün baxın:

    • Regexdən istifadə edərək Excel-də sətirləri necə əvəz etmək olar
    • Regexdən istifadə edərək sətirləri necə silmək olar
    • Regexlərdən istifadə edərək boşluqları necə silmək olar

    Uyğunlaşdırmaq, çıxarmaq üçün Regex Alətləri , alt sətirləri dəyişdirin və silin

    Ultimate Suite-in istifadəçiləri iş dəftərlərinə bir kod sətri daxil etmədən normal ifadələrin bütün gücünü əldə edə bilərlər. Bütün lazımi kodlar tərtibatçılarımız tərəfindən yazılır və quraşdırma zamanı Excel-ə hamar şəkildə inteqrasiya olunur.

    Yuxarıda müzakirə edilən VBA funksiyalarından fərqli olaraq, Ultimate Suite-in funksiyaları .NET-ə əsaslanır və bu, iki əsas üstünlük verir:

    1. Normal .xlsx iş kitablarında hər hansı VBA kodu əlavə etmədən və onları makro-aktiv fayllar kimi saxlamadan istifadə edə bilərsiniz.
    2. .NET Regex mühərriki tam funksiyalı klassiki dəstəkləyir.daha mürəkkəb nümunələr yaratmağa imkan verən müntəzəm ifadələr.

    Excel-də Regex-dən necə istifadə etmək olar

    Ultimate Suite quraşdırılmış halda Excel-də müntəzəm ifadələrdən istifadə bu iki addım qədər sadədir. :

    1. Ablebits Data nişanında, Mətn qrupunda Regex Tools üzərinə klikləyin.

    2. Regeks Alətləri panelində aşağıdakıları edin:
      • Mənbə məlumatını seçin.
      • Regex modelinizi daxil edin.
      • İstədiyiniz seçimi seçin: Uyğunlaşdır , Çıxarış , Sil və ya Əvəz et .
      • Nəticəni aşağıdakı kimi əldə etmək üçün düstur və dəyər deyil, Düstur olaraq daxil et qutusunu seçin.
      • Əməliyyat düyməsini vurun.

      Məsələn, kredit kartı nömrələrini xanalardan silmək üçün A2:A6, biz bu parametrləri konfiqurasiya edirik:

    Bir dəfə AblebitsRegex funksiyası orijinalınızın sağındakı yeni sütuna daxil ediləcək data. Bizim vəziyyətimizdə düstur belədir:

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

    Düstur orada olduqdan sonra onu istənilən yerli düstur kimi redaktə edə, köçürə və ya köçürə bilərsiniz.

    Regex düsturunu birbaşa xanaya necə daxil etmək olar

    AblebitsRegex funksiyaları əlavənin interfeysindən istifadə etmədən də birbaşa xanaya daxil edilə bilər. Budur:

    1. Düsturlar panelində fx düyməsini və ya Formullar nişanında Funksiya Daxil et düyməsini klikləyin.
    2. Funksiya daxil et dialoq qutusunda AblebitsUDFs seçinkateqoriya, maraq funksiyasını seçin və OK klikləyin.

    3. Adətən etdiyiniz kimi funksiyanın arqumentlərini müəyyənləşdirin və OK düyməsini basın. Bitdi!

    Ətraflı məlumat üçün Excel üçün Regex Alətlərinə baxın.

    Excel xanalarında mətni uyğunlaşdırmaq, çıxarmaq, əvəz etmək və silmək üçün adi ifadələrdən belə istifadə etmək olar. Oxuduğunuz üçün sizə təşəkkür edirəm və sizi gələn həftə bloqumuzda görməyi səbirsizliklə gözləyirəm!

    Mövcud endirmələr

    Excel Regex - formula nümunələri (.xlsm faylı)

    Ultimate Suite - sınaq versiyası (.exe faylı)

    və ya .NET əsasında) və ya regexləri dəstəkləyən üçüncü tərəf alətlərini quraşdırın.

    Excel Regex fırıldaqçı vərəqi

    Regex nümunəsi çox sadə və ya son dərəcə mürəkkəb olsun, o, ümumi sintaksisdən istifadə etməklə qurulur. Bu dərslik sizə müntəzəm ifadələri öyrətmək məqsədi daşımır. Bunun üçün yeni başlayanlar üçün pulsuz dərsliklərdən tutmuş qabaqcıl istifadəçilər üçün premium kurslara qədər çoxlu resurs var.

    Aşağıda sizə əsasları dərk etməyə kömək edəcək əsas RegEx nümunələrinə qısa istinad təqdim edirik. O, həmçinin əlavə nümunələri öyrənərkən fırıldaq vərəqiniz kimi işləyə bilər.

    Əgər müntəzəm ifadələrlə rahatsınızsa, siz birbaşa RegExp funksiyalarına keçə bilərsiniz.

    Simvollar

    Bunlar müəyyən simvolları uyğunlaşdırmaq üçün ən çox istifadə olunan nümunələrdir.

    uyğun gəlir
    Nümunə Təsvir Nümunə Uyğunluqlar
    . Wildcard simvolu: sətir kəsilməsi istisna olmaqla istənilən tək simvola uyğun gəlir .ot nöqtə , isti , qazan , @ot
    \d Rəqəm simvolu: istənilən tək rəqəm 0-dan 9-a \d a1b -də, 1
    \D Rəqəm DEYİL hər hansı simvol \D a1b -də a b<2 ilə uyğun gəlir>
    \s Boşluq simvolu: boşluq, tab, yeni sətir və karyota qaytarılması .\s. İçində 3 sent , uyğun gəlir 3 c
    \S Hər hansıboşluq olmayan simvol \S+ 30 sent ilə 30 sent
    \w Söz simvolu: istənilən ASCII hərfi, rəqəmi və ya alt xətt \w+ 5_cats*** , uyğun gəlir 5_cats
    \W Əlifba-rəqəm simvolu və ya alt xətt OLMAYAN hər hansı simvol \W+ 5_cats*** , uyğun gəlir ***
    \t Tab
    \n Yeni sətir \n\d+ İki sətirdə aşağıdakı sətir, 10

    5 pişik

    10 itlə uyğun gəlir

    \ Xarakterin xüsusi mənasını qaçırır, beləliklə onu axtar \.

    \w+\.

    Hərfi "." sətirdəki simvol

    Cənab , Xanım , Prof.

    Xarakter sinifləri

    Bu nümunələrdən istifadə edərək müxtəlif simvol dəstlərinin elementlərini uyğunlaşdıra bilərsiniz.

    Nümunə Təsvir Nümunə Uyğunlaşır
    [simvollar] Mötərizədə olan hər hansı bir simvolla uyğun gəlir d[oi]g it dig
    [^simvol] Mötərizədə DEYİL hər hansı bir simvola uyğun gəlir d[^oi]g Uyğunlaşır dag, dug , d1g

    dog qaz

    [dan–to] Aralarındakı diapazonda istənilən simvola uyğun gəlirmötərizələr [0-9]

    [a-z]

    [A-Z]

    0-dan 9-a qədər istənilən tək rəqəm

    Hər hansı bir kiçik hərf

    İstənilən tək böyük hərf

    Kvantatorlar

    Kəmiyyət təyinçiləri uyğunlaşacaq simvolların sayını təyin edən xüsusi ifadələrdir. Kvantivator həmişə özündən əvvəlki simvola aiddir.

    Nümunə Təsvir Nümunə Uyğunluqlar
    * Sıfır və ya daha çox rast gəlinmə 1a* 1, 1a , 1aa, 1aaa və s.
    + Bir və ya daha çox rast gəlinmə po+ qabda , uyğun gəlir po

    poor , uyğun poo

    ? Sıfır və ya bir hadisə roa?d yol, çubuq
    *? Sıfır və ya daha çox hadisə, lakin mümkün qədər az 1a*? 1a , 1aa 1aaa , uyğun gəlir 1a
    +? Bir və ya daha çox, lakin mümkün qədər az po+? pot pis -də po
    uyğun gəlir? Sıfır və ya bir hadisə , lakin mümkün qədər az roa?? yol çubuq -də ro
    {n} Əvvəlki nümunəyə n dəfə uyğun gəlir \d{3} Tam 3 rəqəm
    {n ,} Əvvəlki modelə n və ya daha çox dəfə uyğun gəlir \d{3,} 3 və ya daha çox rəqəm
    {n,m} Uyğundurn və m dəfə arasında əvvəlki nümunə \d{3,5} 3-dən 5-ə qədər rəqəm

    Qruplaşdırma

    Qruplaşdırma konstruksiyaları mənbə sətirindən alt sətri tutmaq üçün istifadə olunur, ona görə də onunla bəzi əməliyyatlar həyata keçirə bilərsiniz.

    Sintaksis Təsvir Nümunə Uyğunluqlar
    (naxış) Çəkmə qrupu: uyğun gələn alt sətri tutur və ona sıra nömrəsi təyin edir (\d+) 5 pişik və 10 it -də 5 (1-ci qrup) və 10 (2-ci qrup)
    (?:pattern) Qeyri-ələ keçirməyən qrup: qrupa uyğun gəlir, lakin onu tutmur (\d+)(?: itlər) 5 pişik və 10 it -də, 10
    \1 Qrupun məzmununu çəkir 1 (\d+)\+(\d+)=\2\+\1 5+10=10+5 -ə uyğun gəlir və 5-i tutur Tutma qruplarında olan 10
    \2 2-ci qrupun məzmunu

    Lankerlər

    Lankerlər giriş sətirində axtarılacağı yeri təyin edir uyğunluq.

    <14 uyğun gəlir>Sətrin sonu
    Anker Təsvir Nümunə Maçlar
    ^ Sətrin başlanğıcı

    Qeyd: [^daxili mötərizələr] "deyil" deməkdir

    ^\d+ Sətrin hər hansı bir sayı sətirin başlanğıcı.

    5 pişik və 10 it -də 5

    $ \d+$ Sətrin sonundakı istənilən sayda rəqəm.

    10-daY

    (?<=) Pozitiv baxış arxada (?<=Y)X X ifadəsinə uyğun gəlir ondan əvvəl Y olduqda (yəni X-in arxasında Y varsa)
    (? Mənfi baxış (? <) 14>X ifadəsindən əvvəl Y hərfi OLMAYAN zaman uyğun gəlir

    İndi əsasları bildiyiniz üçün gəlin ən maraqlı hissəyə keçək - istifadə edərək sətirləri təhlil etmək və tələb olunan məlumatı tapmaq üçün real verilənlər üzərində regexlər. Sintaksis haqqında daha çox təfərrüata ehtiyacınız varsa, Daimi İfadə Dili üzrə Microsoft bələdçisi faydalı ola bilər.

    Excel üçün fərdi RegEx funksiyaları

    Artıq qeyd edildiyi kimi, Microsoft Excel-də daxili RegEx funksiyaları yoxdur.Normal ifadələri işə salmaq üçün biz üç fərdi VBA funksiyası yaratdıq (aka istifadəçi tərəfindən təyin olunan funksiyalar). Siz kodları aşağıda linklənmiş səhifələrdən və ya nümunəmizdən köçürə bilərsiniz. iş kitabını seçin və sonra öz Excel fayllarınıza yapışdırın.

    VBA RegExp funksiyaları necə işləyir

    Bu bölmə daxili mexanikanı izah edir və int ola bilər. backenddə nə baş verdiyini dəqiq bilmək istəyənlər üçün eresting.

    VBA-da müntəzəm ifadələrdən istifadə etməyə başlamaq üçün ya RegEx obyekt istinad kitabxanasını aktivləşdirməli, ya da CreateObject funksiyasından istifadə etməlisiniz. Sizi VBA redaktorunda istinad təyin etmək problemindən xilas etmək üçün biz sonuncu yanaşmanı seçdik.

    RegExp obyektinin 4 xassələri var:

    • Nümunə - dır,-dir,-dur,-dür naxış daxiletmə sətirində uyğunlaşmaq üçün.
    • Qlobal - giriş sətirində bütün uyğunluqların və ya sadəcə birincinin tapılmasına nəzarət edir. Funksiyalarımızda, bütün uyğunluqları əldə etmək üçün True olaraq təyin edilib.
    • MultiLine - çoxsətirli sətirlərdə sətir fasilələri arasında nümunənin uyğunlaşdırılıb-ulaşmamasını müəyyən edir, yoxsa yalnız birinci sətirdə. Kodlarımızda, hər sətirdə axtarmaq üçün True olaraq təyin edilib.
    • IgnoreCase - nizamlı ifadənin böyük hərflərə həssas (defolt) və ya hərf-həssas olduğunu müəyyən edir- həssas deyil (Doğru olaraq təyin olunur). Bizim vəziyyətimizdə bu, isteğe bağlı match_case parametrini necə konfiqurasiya etdiyinizdən asılıdır. Varsayılan olaraq, bütün funksiyalar hərflərə həssasdır .

    VBA RegExp məhdudiyyətləri

    Excel VBA əsas regex nümunələrini həyata keçirir, lakin bir çox inkişaf etmiş funksiyalardan məhrumdur. .NET, Perl, Java və digər regex mühərriklərində mövcuddur. Məsələn, VBA RegExp kiçik hərflərə həssas olmayan uyğunluq üçün (?i) və ya çoxsətirli rejim üçün (?m) kimi daxili dəyişdiriciləri dəstəkləmir. Uyğunluq funksiyası

    RegExpMatch funksiyası müntəzəm ifadəyə uyğun gələn mətn üçün daxiletmə sətirində axtarış aparır və uyğunluq aşkar edilərsə TRUE, əks halda YANLIŞ qaytarır.

    RegExpMatch(mətn, nümunə, [ match_case])

    Burada:

    • Mətn (tələb olunur) - axtarış üçün bir və ya daha çox sətir.
    • Nümunə ( tələb olunur) - müntəzəmuyğun ifadə.
    • Uyğun_case (isteğe bağlı) - uyğunluq növü. DOĞRU və ya buraxılmış - hərflərə həssasdır; FALSE - böyük hərflərə həssas deyil

    Funksiya kodu buradadır.

    Məsələn: sətirləri uyğunlaşdırmaq üçün müntəzəm ifadələrdən necə istifadə etmək olar

    Aşağıdakı verilənlər dəstində fərz edin ki, siz istədiyiniz SKU kodlarını ehtiva edən qeydləri müəyyən etmək üçün.

    Hər SKU-nun 2 böyük hərf, ardınca tire və ardınca 4 rəqəmlə başladığını nəzərə alsaq, onları aşağıdakı ifadədən istifadə edərək uyğunlaşdıra bilərsiniz.

    Nümunə : \b[A-Z]{2}-\d{4}\b

    Burada [A-Z]{2} A-dan Z-yə qədər hər hansı 2 böyük hərf və \d{4 deməkdir } 0-dan 9-a qədər istənilən 4 rəqəm deməkdir. Söz sərhədi \b SKU-nun daha böyük sətirin bir hissəsi deyil, ayrıca söz olduğunu göstərir.

    Nümunəvi müəyyən edildikdə, adətən etdiyiniz kimi düstur yazmağa başlayın. , və funksiyanın adı Excel-in Avtomatik Tamamlama proqramı tərəfindən təklif olunan siyahıda görünəcək:

    Orijinal sətirin A5-də olduğunu fərz etsək, formula aşağıdakı kimi olur:

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

    Rahatlıq üçün siz normal ifadəni ayrıca xanaya daxil edə və naxış arqumenti üçün mütləq istinaddan ($A$2) istifadə edə bilərsiniz. t. Bu, düsturu digər xanalara köçürəndə xana ünvanının dəyişməz qalmasını təmin edir:

    =RegExpMatch(A5, $A$2)

    TRUE və FALSE əvəzinə öz mətn etiketlərinizi göstərmək üçün IF funksiyasında RegExpMatch-i yerləşdirin və əgər_əgər_dəyər yalan_əgər dəyər -də istədiyiniz mətnləri təyin edinplus 5 15 verir, 15-ə uyğun gəlir

    \b Söz sərhəddi \bjoy\b sevinc ayrı söz kimi uyğun gəlir, lakin ləzzətli deyil. \B Söz sərhəddi DEYİL \Bjoy\B joy ilə zövqlü ilə uyğun gəlir, lakin ayrıca söz kimi deyil.

    Alternasiya (OR) konstruksiyası

    Alternativ operand OR məntiqini işə salır, beləliklə, siz bu və ya digər elementi uyğunlaşdıra bilərsiniz.

    Yaradın Təsvir Nümunə Uyğunluqlar

    Michael Brown proqram alətlərindən istifadə edərək mürəkkəb prosesləri sadələşdirməyə həvəsi olan xüsusi texnologiya həvəskarıdır. Texnologiya sənayesində on ildən artıq təcrübəyə malik olmaqla, o, Microsoft Excel və Outlook, həmçinin Google Cədvəl və Sənədlərdə bacarıqlarını mükəmməlləşdirib. Mayklın bloqu öz biliyini və təcrübəsini başqaları ilə bölüşməyə, məhsuldarlığı və səmərəliliyi artırmaq üçün asan izlənilən məsləhətlər və dərslikləri təqdim etməyə həsr olunub. İstər təcrübəli peşəkar, istərsə də yeni başlayan biri olmağınızdan asılı olmayaraq, Mayklın bloqu bu vacib proqram alətlərindən maksimum yararlanmaq üçün dəyərli fikirlər və praktiki məsləhətlər təklif edir.