VBA RegEx | Kā izmantot regulāro izteiksmi VBA Excel? (Piemēri)

Kas ir RegEx programmā Excel VBA?

RegEx nozīmē “ Regular Expression ” VBA Excel un ir rakstzīmju secība, kas nosaka meklēšanas modeli, lai noteiktu virkni vērtību noteiktu virkni rakstzīmju. Vienkāršā vārdā “mēs varam izveidot regulāru izteiksmes modeli un izmantot to, lai meklētu šī modeļa virkni”.

VBA RegEx ir objekta modelis. Es zinu, ka tas ir biedējošs, aplūkojot skaidrojumu, bet lieta ir tāda, ka objekta būtība. Viena lieta, kas jums jāatceras, ir VBA RegEx (regulārā izteiksme) ir teksta funkciju objekts, tāpat kā citas mūsu teksta funkcijas “LEFT, RIGHT, MID”.

Kā iespējot RegEx programmā Excel VBA?

Kā es teicu VBA, RegEx ir objekta modelis VBA tāpat kā mūsu ārējā programmatūra, piemēram, “MS Word” un “MS PowerPoint”. Līdzīgi RegEx ir arī komponenta objekta modelis (COM), uz kuru mums jāatsaucas VBA redaktorā. Lai iespējotu RegEx, rīkojieties šādi.

1. darbība: dodieties uz Visual Basic Editor (Alt + F11)

2. darbība: dodieties uz Rīki un atsauces.

3. solis: Tagad jūs redzēsiet atsauces uz VBA projektu. Ritiniet uz leju un atlasiet “Microsoft VBScript Regular Expression 5.5”

4. solis: Tagad noklikšķiniet uz Labi. Šim RegEx objektam mēs tagad varam piekļūt VBA kodēšanā.

Piemērs - Tagad es jums parādīšu vienu vienkāršu piemēru. Pieņemsim, ka jums ir vārdi “Pārdošana 2019, Pārdošana 2018 un Pārdošana 2017”. Ja jūs definējat modeli kā [0 - 7], tas atbilst visiem skaitļiem no 0 līdz 7, tāpēc mūsu atbilstība katrā virknē būs 201, 201 un 2017.

VBA RegEx modelis

Funkcijas VBA RegEx modelis izskatās biedējošs, un modeļa izpratnei vajadzīgs zināms laiks. Mēs šeit varam redzēt divu veidu rakstzīmju secību: viena ir “Literālās rakstzīmes”, bet otra - “Metahomas”.

  • Burtiskās rakstzīmes meklē precīzu norādītās virknes atbilstību. Piemēram, burtiskā rakstzīmju secība “EFG” vienkārši meklē visas “EFG” atbilstības norādītajā tekstā.
  • Metahomas nav nekas cits kā rakstzīmju kombinācija ar precīzu nozīmi RegEx modelī. Tas ir pilnīgi atšķirīgs no burtiskajiem varoņiem. Tā ir milzīga tēma, kas jāatspoguļo. Tālāk ir sniegtas dažas svarīgas sintakse.
Sintakse Apraksts Piemērs Spēles piemērs
. Tas atbilst jebkurai ievades virknes atsevišķai rakstzīmei pt Mājdzīvnieks. Pot, Put, Pattern
[] Tas atbilst jebkurai atsevišķai rakstzīmei starp ievades virknes iekavu [pt] Tas atbilst vai nu p, vai t
[^] Tas atbilst jebkurai atsevišķai rakstzīmei, nevis starp ievades virknes iekavām [^ pt] Tas neatbilst nedz p, nedz t
[Pirmais Pēdējais] Tas atbilst jebkurai rakstzīmei starp iekavās norādīto diapazonu [0–9] Tas atbilst jebkuram ciparam no 0 līdz 9
[az] Tas atbilst jebkuram mazajam burtam no a līdz z
[AZ] Tas atbilst jebkuram lielajam burtam no A līdz Z
\ s Tas atbilst jebkuram atstarpes rakstzīmei - Atbilst atstarpes, jaunas rindas vai tabulēšanas rakstzīmei
\ S Tas atbilst jebkuram rakstam, kas nav balts - Atbilstības rakstzīmes nav atstarpe, ne jauna rindiņa, ne tabulēšanas rakstzīme
\ d Tas atbilst jebkuram viencipara rakstzīmei SE 5 VG 6 5. un 6. spēle
\ D Tas atbilst jebkuram atsevišķam neskaitāma rakstzīmei SE 5 VG 6 Atbilst SEVG

RegEx objekta īpašības un metodes

Tāpat kā visiem mūsu objektu modeļiem, arī RegEx ir savas īpašības un metodes. Tagad mēs redzēsim pa vienam detalizēti.

Objekta VBA Regex īpašības

  • Raksts: Tas tiek izmantots, lai saskaņotu norādīto virkni.
  • Ignorēt lielo un mazo burtu rakstzīmes.
  • Globāls: ja jūs vēlaties atrast visas atbilstības modelī, arguments ir PATIESA, pretējā gadījumā tiks atrasta pirmā atbilstība.
  • Multi-Line: Ja vēlaties atrast jaunus rindu pārtraukumus, varat to izmantot.

RegEx objekta metodes

  • Tests: tas ir paredzēts, lai pārbaudītu, vai modelis ir atrodams norādītajā virknē. Tas atgriezīs TRUE, ja tiks atrasts, vai arī FALSE.
  • Izpildīt: tādējādi tiks atgrieztas visas raksta atbilstības atrastajai virknei.
  • Aizstāt: tas aizstās meklēšanas virkni ar jaunu virkni.

RegEx piemērs VBA Excel

Tagad ieskatieties zemāk redzamajā VBA koda piemērā.

Šo VBA RegEx Excel veidni varat lejupielādēt šeit - VBA RegEx Excel veidne

Kods:

Sub RegEx_Example () Dim RegEx kā objekts, MyString kā virkne iestatīta RegEx = CreateObject ("VBScript.RegExp") ar RegEx .Pattern = "[0-9] +" Beigt ar MyString = "Dzimšanas datums ir 1985" MsgBox RegEx .Test (MyString) MyString = "Dzimšanas datums ir ???" MsgBox RegEx.Test (MyString) beigu apakšnodaļa

fregular

Iepriekš minētajā kodā mēs esam iestatījuši modeli, lai meklētu skaitli no 0 līdz 9 šādi.

 Ar RegEx .Pattern = "[0-9] +" Beigt ar 

Tad mainīgais MyString = “Dzimšanas datums ir 1985” tur vērtības no 0 līdz 9, tāpēc mūsu ziņojumu lodziņā tiks parādīta vērtība PATIESA.

MyString = “Dzimšanas datums ir ???” nav neviena numura no 0 līdz 9, tāpēc ziņojuma lodziņu rezultātā tiks parādīts FALSE.


$config[zx-auto] not found$config[zx-overlay] not found