VBA RegEx - Kako uporabljati regularni izraz v programu VBA Excel? (Primeri)

Kaj je RegEx v Excelu VBA?

RegEx v VBA Excel pomeni » Regular Expression « in je zaporedje znakov, ki definira iskalni vzorec za iskanje določenega vzorca znakov v nizu vrednosti. Z enostavno besedo: "Ustvarimo lahko vzorec regularnega izraza in z njim poiščemo niz tega vzorca."

VBA RegEx je objektni model. Vem, da je zastrašujoče s pogledom na razlago, ampak stvar je v naravi predmeta. Tukaj si morate zapomniti, da je VBA RegEx (regularni izraz) predmet besedilne funkcije, kot so naše druge besedilne funkcije, »LEVO, DESNO, SREDNJE«.

Kako omogočiti RegEx v Excelu VBA?

Kot sem povedal VBA, je RegEx objektni model v VBA, tako kot naša zunanja programska oprema, kot sta "MS Word" in "MS PowerPoint." Podobno je RegEx tudi komponentni objektni model (COM), na katerega se moramo sklicevati v urejevalniku VBA. Če želite omogočiti RegEx, sledite spodnjim korakom.

1. korak: Pojdite v urejevalnik Visual Basic (Alt + F11)

2. korak: Pojdite na Orodja in reference.

3. korak: Zdaj boste videli sklice na projekt VBA. Pomaknite se navzdol in izberite »Microsoft VBScript Regular Expression 5.5.«

4. korak: Zdaj kliknite V redu. Do tega predmeta RegEx lahko dostopamo zdaj v kodiranju VBA.

Primer - zdaj vam bom pokazal en preprost primer. Predpostavimo, da imate besede »Prodaja 2019, Prodaja 2018 in Prodaja 2017«. Če vzorec definirate kot (0 - 7), se ujema z vsemi števili med 0 in 7, zato bodo naša ujemanja 201, 201 in 2017 v vsakem nizu.

Vzorec VBA RegEx

Vzorec funkcije VBA RegEx je videti zastrašujoč in vzame nekaj časa, da ga razume. Tu lahko vidimo dve vrsti zaporedja znakov, eden je »Dobesedni znaki«, drugi pa »Metaznaki«.

  • Dobesedni znaki iščejo natančno ujemanje podanega niza. Na primer, dobesedno zaporedje znakov »EFG« preprosto išče vsa ujemanja »EFG« v navedenem besedilu.
  • Metaznaki niso nič drugega kot kombinacija znakov z natančnim pomenom v vzorcu RegEx. To povsem drugače kot dobesedni znaki. To je ogromna tema, ki jo je treba zajeti. Spodaj je nekaj pomembnih skladenj.
Sintaksa Opis Primer Primer ujemanja
. Ujema se s katerim koli znakom vhodnega niza. pt Hišne živali. Pot, Put, Pattern
() Ujema se s katerim koli znakom med oklepajem vhodnega niza. (pt) Ujema se s p ali t
(^) Ujema se s katerim koli znakom, ne med oklepaji vhodnega niza. (pt) Ne ujema se niti s p niti s t
(Prvi zadnji) Ujema se s katerim koli znakom med obsegom, navedenim v oklepaju. (0–9) Ujema se s katero koli številko od 0 do 9
(az) Ujema se z vsemi malimi črkami od a do z
(AZ) Ujema se z vsemi velikimi črkami od A do Ž
s Ujema se s katerim koli praznim znakom. - Ujema se s presledkom, novo vrstico ali znakom zavihka
S Ujema se s katerim koli znakom, ki ni presledek - Znaki za ujemanje niso presledek, nova vrstica ali znak za zavihek
d Ujema se s katerim koli enomestnim znakom. SE 5 VG 6 Tekmi 5 in 6
D Ujema se z enim samim nedimestnim znakom SE 5 VG 6 Ujema se s SEVG

Lastnosti in metode predmeta RegEx

Kot vsi naši objektni modeli ima tudi RegEx svoje lastnosti in metode. Zdaj bomo podrobno videli enega za drugim.

Lastnosti predmeta VBA Regex

  • Vzorec: Uporablja se za ujemanje s predvidenim nizom.
  • Ignore Case: prezreti je treba velike in male črke.
  • Globalno: če želite poiskati vsa ujemanja v vzorcu, je argument TRUE, sicer bo najdeno prvo ujemanje.
  • Več vrstic: če želite najti nove prelome vrstic, lahko to uporabite.

Metode predmeta RegEx

  • Test: S tem preizkusite, ali je vzorec mogoče najti v navedenem nizu. To bo vrnilo TRUE, če ga najdete, ali pa FALSE.
  • Izvedi: s tem se vrnejo vsa ujemanja vzorca z iskalnim nizom.
  • Zamenjaj: To bo iskalni niz nadomestilo z novim nizom.

Primer RegEx v VBA Excel

Zdaj pa si oglejte spodnji primer kode VBA.

Koda:

Sub RegEx_Example () Dim RegEx kot objekt, MyString kot niz nastavi RegEx = CreateObject ("VBScript.RegExp") z RegEx .Pattern = "(0-9) +" End With MyString = "Datum rojstva je leto 1985" MsgBox RegEx .Test (MyString) MyString = "Datum rojstnega leta je ???" MsgBox RegEx.Test (MyString) End Sub

redno

V zgornji kodi smo nastavili vzorec za iskanje številke od 0 do 9, kot sledi.

Z RegEx .Pattern = "(0-9) +" Končaj z

Potem spremenljivka MyString = "Datum rojstva je leto 1985" vsebuje vrednosti od 0 do 9, zato bo naše sporočilo vrnilo TRUE.

MyString = "Datum rojstva je ???" nima nobenih številk od 0 do 9, zato bo vrnil FALSE kot rezultat sporočil.

Zanimive Članki...