VBA RegEx - Cum se utilizează expresia regulată în VBA Excel? (Exemple)

Ce este RegEx în Excel VBA?

RegEx înseamnă „ Expresie regulată ” în VBA Excel și este o secvență de caractere care definește modelul de căutare pentru găsirea unui model specific de caractere într-un șir de valori. Într-un cuvânt simplu, „putem crea un model de expresie regulată și îl putem folosi pentru a căuta șirul acelui model”.

VBA RegEx este un model de obiect. Știu că este intimidant uitându-mă la explicație, dar chestiunea este că natura obiectului. Un lucru pe care trebuie să-l amintiți aici este că VBA RegEx (Expresie regulată) este un obiect cu funcție text, precum celelalte funcții text, „STÂNGA, DREAPTA, MID”.

Cum se activează RegEx în Excel VBA?

După cum i-am spus VBA, RegEx este un model de obiect în VBA, la fel ca software-ul nostru extern, cum ar fi „MS Word” și „MS PowerPoint”. În mod similar, RegEx este, de asemenea, un model de obiect component (COM), pe care trebuie să îl referim în editorul VBA. Pentru a activa RegEx, urmați pașii de mai jos.

Pasul 1: Accesați Editorul Visual Basic (Alt + F11)

Pasul 2: Accesați Instrumente și referințe.

Pasul 3: Acum, veți vedea referințe la proiectul VBA. Derulați în jos și selectați „Microsoft VBScript Regular Expression 5.5”.

Pasul 4: Acum faceți clic pe, OK. Putem accesa acest obiect RegEx acum în codificare VBA.

Exemplu - Acum, vă voi arăta un exemplu simplu. Să presupunem că aveți cuvintele „Vânzări 2019, Vânzări 2018 și Vânzări 2017”. Dacă definiți modelul ca (0 - 7), acesta se potrivește cu toate numerele cuprinse între 0 și 7, deci meciurile noastre vor fi 201, 201 și 2017 în fiecare șir.

Model VBA RegEx

Modelul funcției VBA RegEx pare intimidant și durează ceva timp pentru a înțelege modelul. Aici putem vedea două tipuri de secvențe de caractere, unul este „Personaje literale”, iar altul este „Metacaractere”.

  • Caracterele literale caută potrivirea exactă a șirului furnizat. De exemplu, secvența literală de caractere „EFG” pur și simplu caută toate potrivirile „EFG” în textul furnizat.
  • Metacaracterele nu sunt altceva decât o combinație de caractere cu semnificație exactă în modelul RegEx. Acest lucru este complet diferit de caracterele literale. Este un subiect imens de acoperit. Mai jos sunt câteva dintre sintaxele importante.
Sintaxă Descriere Exemplu Exemplu de potrivire
. Se potrivește cu orice caracter unic al șirului de intrare. pt Animal de companie. Pot, Put, Pattern
() Se potrivește cu orice caracter dintre paranteză unui șir de intrare. (pt) Se potrivește fie cu p, fie cu t
(^) Se potrivește cu orice caracter, nu între paranteză unui șir de intrare. (pt) Nu se potrivește nici cu p, nici cu t
(Primul Ultimul) Se potrivește cu orice caracter între intervalul furnizat în paranteză. (0-9) Se potrivește cu orice cifră de la 0 la 9
(az) Se potrivește cu orice caracter minuscul de la a la z
(AZ) Se potrivește cu orice caracter majuscul de la A la Z
s Se potrivește cu orice caracter din spațiul alb. - Potrivește spațiul, linia nouă sau caracterul filelor
S Se potrivește cu orice caracter fără spațiu alb - Caracterele potrivite nu sunt Spațiu, nu Linie nouă sau nu Caracter Tab
d Se potrivește cu orice caracter dintr-o singură cifră. SE 5 VG 6 Meciurile 5 și 6
D Se potrivește cu orice caracter fără cifre SE 5 VG 6 Meciuri SEVG

Proprietăți și metode ale obiectului RegEx

La fel ca toate modelele noastre de obiecte, și RegEx are propriile sale metode și metode. Acum vom vedea unul câte unul în detaliu.

Proprietățile obiectului VBA Regex

  • Model: Acesta este utilizat pentru a se potrivi cu șirul furnizat.
  • Ignorați majuscule : aceasta este pentru a ignora majusculele și minusculele.
  • Global: Dacă doriți să găsiți toate meciurile din model, atunci TRUE este argumentul, altfel va fi găsit primul meci.
  • Multi-Line: Dacă doriți să găsiți peste întreruperi de linie noi, puteți utiliza acest lucru.

Metode ale obiectului RegEx

  • Test: Aceasta este pentru a testa dacă modelul poate fi găsit în șirul furnizat. Acest lucru va reveni ADEVĂRAT dacă este găsit sau altfel FALS.
  • Execute: Aceasta va returna toate meciurile modelului cu șirul de găsire.
  • Înlocuire: Aceasta va înlocui șirul de căutare cu noul șir.

Exemplu de RegEx în VBA Excel

Acum aruncați o privire la exemplul de cod VBA de mai jos.

Cod:

Sub RegEx_Example () Dim RegEx Ca obiect, MyString As String Set RegEx = CreateObject ("VBScript.RegExp") With RegEx .Pattern = "(0-9) +" End With MyString = "Data nașterii este 1985" MsgBox RegEx .Test (MyString) MyString = "Data nașterii este anul ???" MsgBox RegEx.Test (MyString) End Sub

regulat

În codul de mai sus, am setat modelul pentru a căuta numărul de la 0 la 9 după cum urmează.

Cu RegEx .Pattern = "(0-9) +" Termină cu

Apoi, variabila MyString = „Data nașterii este anul 1985”, aceasta deține valorile de la 0 la 9, deci caseta noastră de mesaje va reveni la TRUE.

MyString = „Data nașterii este anul ???” nu are niciun număr de la 0 la 9, așa că va reveni FALS pe ​​măsură ce rezultă casetele de mesaje.

Articole interesante...