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“ (reguliarioji išraiška) yra teksto funkcijos objektas, kaip ir kitos mūsų teksto funkcijos „Kairė, Dešinė, Vidurinis“.

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ėžiate š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, o suprasti jį reikia šiek tiek laiko. Čia galime pamatyti dviejų rūšių simbolių seką: vienas yra „Pažodiniai veikėjai“, kitas - „Metaženklai“.

  • Pažodiniai simboliai ieško tikslaus 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 „RegEx“ šablone tikslią reikšmę turinčių simbolių derinys. Tai visiškai kitoks nei pažodiniai personažai. Tai didžiulė tema. Žemiau 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 kokį simbolį tarp skliausteliuose pateikto diapazono. (0–9) Jis atitinka bet kurį skaitmenį nuo 0 iki 9
(az) Jis sutampa su mažosiomis raidėmis 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 Jis atitinka bet kokį nebalios erdvės simbolį - 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 Jis sutampa su bet kuriuo atskiru be skaitmenų simboliu 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 schemos atitiktis, tada argumentas yra TRUE, 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 šabloną 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į.

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 m." .Test (MyString) MyString = "Gimimo data yra ???" „MsgBox RegEx.Test“ („MyString“) pabaigos pabaiga

reguliarus

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.

Įdomios straipsniai...