VBA RegEx | Kaip naudoti reguliariąją išraišką „VBA Excel“? (Pavyzdžiai)

Kas yra „RegEx“ programoje „Excel VBA“?

„RegEx“ reiškia „ Reguliarioji išraiška “ VBA „Excel“ ir yra simbolių seka, apibrėžianti paieškos modelį, norint rasti konkretų simbolių modelį reikšmių eilutėje. Paprastu žodžiu „mes galime sukurti taisyklingos išraiškos šabloną ir naudoti jį to modelio eilutės paieškai“.

„VBA RegEx“ yra objekto modelis. Žinau, kad tai baugina žiūrėdamas į paaiškinimą, bet dalykas yra tas, kad objekto pobūdis. Čia reikia atsiminti vieną dalyką: „VBA RegEx“ („Regular Expression“) yra teksto funkcijos objektas, kaip ir kitos mūsų teksto funkcijos „LEFT, RIGHT, MID“.

Kaip įjungti „RegEx“ programoje „Excel VBA“?

Kaip sakiau VBA, „RegEx“ yra VBA objekto modelis, kaip ir mūsų išorinė programinė įranga, pvz., „MS Word“ ir „MS PowerPoint“. Panašiai „RegEx“ taip pat yra komponento objekto modelis (COM), kurį turime nurodyti VBA redaktoriuje. Norėdami įgalinti „RegEx“, atlikite toliau nurodytus veiksmus.

1 veiksmas: eikite į „Visual Basic“ redaktorių („Alt“ + F11)

2 žingsnis: Eikite į Įrankiai ir nuorodos.

3 žingsnis: Dabar pamatysite nuorodas į VBA projektą. Slinkite žemyn ir pasirinkite „Microsoft VBScript Regular Expression 5.5“

4 žingsnis: Dabar spustelėkite Gerai. Šį „RegEx“ objektą galime pasiekti dabar naudodami VBA kodavimą.

Pavyzdys - dabar aš jums parodysiu vieną paprastą pavyzdį. Tarkime, kad turite žodžius „Pardavimai 2019, Pardavimai 2018 ir Pardavimai 2017“. Jei apibrėžsite šabloną kaip [0–7], jis sutampa su visais skaičiais nuo 0 iki 7, todėl kiekvienoje eilutėje mūsų atitikmenys bus 201, 201 ir 2017.

„VBA RegEx“ modelis

Funkcijos „VBA RegEx“ modelis atrodo bauginantis ir tam, kad suprastumėte modelį, reikia šiek tiek laiko. Čia galime pamatyti dviejų rūšių simbolių seką: vienas yra „Pažodiniai veikėjai“, o kitas - „Metaženklai“.

  • Pažodiniai simboliai ieško tikslios pateiktos eilutės atitikties. Pavyzdžiui, pažodinė simbolių seka „EFG“ paprasčiausiai ieško visų „EFG“ atitikmenų pateiktame tekste.
  • Metaženklai yra ne kas kita, o simbolių derinys, turintis tikslią reikšmę „RegEx“ modelyje. Tai visiškai kitoks nei pažodiniai personažai. Tai didžiulė tema, kurią reikia aptarti. Toliau pateikiama keletas svarbių sintaksių.
Sintaksė apibūdinimas Pavyzdys Rungtynių pavyzdys
. Jis atitinka bet kurį įvesties eilutės simbolį pt Augintinis. Puodas, įdėti, raštas
[] Jis sutampa su bet kuriuo atskiru simboliu tarp įvesties eilutės skliausteliuose [pt] Tai atitinka p arba t
[^] Jis sutampa su bet kuriuo atskiru simboliu, o ne tarp įvesties eilutės skliausteliuose [^ pt] Tai neatitinka nei p, nei t
[Pirmas Paskutinis] Jis atitinka bet kurį simbolį tarp skliausteliuose pateikto diapazono [0–9] Jis atitinka bet kurį skaitmenį nuo 0 iki 9
[az] Jis sutampa su bet kuria mažąja raide nuo a iki z
[AZ] Jis sutampa su didžiosiomis raidėmis nuo A iki Z
\ s Tai atitinka bet kokį baltosios erdvės simbolį - Atitinka tarpo, naujos eilutės arba skirtuko simbolį
\ S Tai atitinka bet kokį nebalios erdvės veikėją - Atitikčių simboliai nėra tarpas, ne nauja eilutė ar ne tabuliavimo ženklas
\ d Jis atitinka bet kurį vieno skaitmens simbolį SE 5 VG 6 5 ir 6 rungtynės
\ D Tai atitinka bet kurį atskirą neskaitmenį simbolį SE 5 VG 6 Atitinka SEVG

„RegEx“ objekto savybės ir metodai

Kaip ir visi mūsų objektų modeliai, „RegEx“ taip pat turi savo ypatybes ir metodus. Dabar mes matysime po vieną išsamiai.

„VBA Regex Object“ ypatybės

  • Raštas: jis naudojamas norint suderinti pateiktą eilutę.
  • Nepaisyti didžiųjų ir mažųjų raidžių.
  • Visuotinis: jei norite rasti visas schemoje esančias atitiktis, tada argumentas yra TIESA, kitaip bus surasta pirmoji atitiktis.
  • Kelios eilutės: jei norite rasti naujų eilučių pertraukėlių, galite tai naudoti.

„RegEx“ objekto metodai

  • Testas: Tai bandymas, ar raštą galima rasti pateiktoje eilutėje. Tai grąžins TRUE, jei bus rasta, arba dar FALSE.
  • Vykdyti: Tai grąžins visas modelio atitiktis nuo ieškos eilutės.
  • Pakeisti: Tai pakeis paieškos eilutę nauja.

„RegEx“ pavyzdys „VBA Excel“

Dabar pažvelkite į žemiau pateiktą VBA kodo pavyzdį.

Šį „VBA RegEx Excel“ šabloną galite atsisiųsti čia - „VBA RegEx Excel“ šablonas

Kodas:

SubregEx_Example () Dim RegEx kaip objektas, MyString kaip eilutė nustato RegEx = CreateObject ("VBScript.RegExp") su RegEx .Pattern = "[0-9] +" End With MyString = "Gimimo data yra 1985" MsgBox RegEx .Test (MyString) MyString = "Gimimo data yra ???" „MsgBox RegEx.Test“ („MyString“) pabaigos pabaiga

nereguliarus

Pirmiau pateiktame kode mes nustatėme šabloną ieškoti skaičiaus nuo 0 iki 9 taip.

 Su RegEx .Pattern = "[0-9] +" Baigti 

Tada kintamasis „MyString“ = „Gimimo data yra 1985 m.“ Reiškia reikšmes nuo 0 iki 9, todėl mūsų pranešimų laukelis pateiks TRUE.

MyString = "Gimimo data yra ???" neturi jokių skaičių nuo 0 iki 9, todėl pranešimų laukeliuose bus rodoma FALSE.