VBA RegEx - Hogyan használjuk a reguláris kifejezést a VBA Excel programban? (Példák)

Mi az a RegEx az Excel VBA-ban?

A RegEx a „ Regular Expressionkifejezést jelenti a VBA Excelben, és egy olyan karaktersorozat, amely meghatározza a keresési mintát egy adott karakterminta megtalálásához egy értékláncban . Egyszerű szóval: „létrehozhatunk egy reguláris kifejezésmintát, és felhasználhatjuk arra, hogy megkeresjük a minta karaktersorozatát”.

A VBA RegEx egy objektummodell. Tudom, hogy félelmetes, ha megnézem a magyarázatot, de az a helyzet, hogy a tárgy jellege. Egy dologra emlékezned kell itt: a VBA RegEx (Regular Expression) egy olyan szöveges függvényobjektum, mint a többi szöveges függvényünk, a „LEFT, RIGHT, MID”.

Hogyan engedélyezhető a RegEx az Excel VBA-ban?

Amint azt a VBA-nak elmondtam, a RegEx egy objektummodell a VBA-ban, akárcsak a külső szoftverünk, például az „MS Word” és az „MS PowerPoint”. Hasonlóképpen, a RegEx egy Component Object Model (COM) is, amelyre hivatkoznunk kell a VBA szerkesztőben. A RegEx engedélyezéséhez kövesse az alábbi lépéseket.

1. lépés: Lépjen a Visual Basic Editorba (Alt + F11)

2. lépés: Lépjen az Eszközök és hivatkozások oldalra.

3. lépés: Most látni fogja a VBA projektre való hivatkozásokat. Görgessen lefelé, és válassza a „Microsoft VBScript Regular Expression 5.5” lehetőséget.

4. lépés: Most kattintson az OK gombra. Ezt a RegEx objektumot most VBA kódolással érhetjük el.

Példa - Most egy egyszerű példát mutatok be. Tegyük fel, hogy az „Értékesítés 2019, Értékesítés 2018 és Értékesítés 2017” szavak vannak. Ha a mintát (0 - 7) -ként definiálja, akkor az minden 0 és 7 közötti számot megegyezik, így a mérkőzéseink 201, 201 és 2017 lesznek az egyes karakterláncokban.

VBA RegEx minta

A VBA RegEx függvény mintázata félelmetesnek tűnik, és időbe telik a minta megértése. Kétféle karaktersorozatot láthatunk, itt az egyik a „Szó szerinti karakterek”, a másik pedig a „Metakarakterek”.

  • A szó szerinti karakterek a megadott karakterlánc pontos egyezésére keresnek. Például az „EFG” szó szerinti karaktersor egyszerűen megkeresi az „EFG” összes egyezését a megadott szövegben.
  • A metakarakterek nem más, mint a RegEx mintában pontos jelentéssel rendelkező karakterek kombinációja. Ez teljesen más, mint a Literal Characters. Óriási téma, amellyel foglalkozni kell. Az alábbiakban bemutatunk néhány fontos szintaxist.
Szintaxis Leírás Példa Példa egyezésre
. Egyezik a bemeneti karakterlánc egyetlen karakterével. pt Házi kedvenc. Pot, Put, Pattern
() Bármelyik karakter illeszkedik a bemeneti karakterlánc zárójelébe. (pt) Vagy a p-nek, vagy a t-nek felel meg
(^) Bármelyik karakterhez illeszkedik, nem egy bemeneti karakterlánc zárójeléhez. (pt) Sem a p, sem a t nem felel meg
(Első Utolsó) Bármely karakterhez illeszkedik a zárójelben megadott tartomány között. (0–9) Bármely 0 és 9 közötti számjegyet megegyezik
(az) Bármilyen kisbetűvel megegyezik a-tól z-ig
(AZ) Minden nagybetűvel megegyezik A-tól Z-ig
s Bármely szóköz karakterhez illeszkedik. - Megfelel a szóköznek, az új vonalnak vagy a tabulátor karakternek
S Bármely nem fehér szóköz karakterhez illeszkedik - Az egyező karakterek nem szóköz, nem új sor, vagy nem tabulátor karakterek
d Bármely egyjegyű karakterhez illeszkedik. SE 5 VG 6 5. és 6. mérkőzés
D Bármelyik nem számjegyből áll SE 5 VG 6 Megfelel a SEVG-nek

A RegEx Object tulajdonságai és módszerei

Mint minden objektummodellünk, a RegEx is rendelkezik saját tulajdonságokkal és módszerekkel. Most egyenként fogjuk látni részletesen.

A VBA Regex Object tulajdonságai

  • Minta: Ez a megadott karaktersorozathoz illeszkedik.
  • Kis- és nagybetűk figyelmen kívül hagyása: A nagy- és kisbetűk figyelmen kívül hagyása.
  • Globális: Ha az összes egyezést meg akarja találni a mintában, akkor az IGAZ az argumentum, különben az első egyezés található.
  • Többsoros: Ha új sortöréseket szeretne találni, használhatja ezt.

A RegEx objektum módszerei

  • Teszt: Ennek célja annak tesztelése, hogy a minta megtalálható-e a megadott karakterláncban. Ez IGAZ eredményt ad, ha megtalálják, vagy pedig FALSE.
  • Végrehajtás: Ez visszaadja a minta összes találatát a megtaláló karakterlánccal szemben.
  • Csere: Ez helyettesíti a keresési karakterláncot az új karakterlánccal.

Példa a RegEx-re a VBA Excel-ben

Most nézze meg az alábbi VBA kód példát.

Kód:

Sub RegEx_Example () Dim RegEx objektumként, MyString mint karakterlánc beállítása RegEx = CreateObject ("VBScript.RegExp") RegEx-szel .Pattern = "(0-9) +" End With MyString = "A születési dátum 1985" MsgBox RegEx .Test (MyString) MyString = "A születési dátum éve ???" MsgBox RegEx.Test (MyString) End Sub

szabályos

A fenti kódban a mintát úgy állítottuk be, hogy a 0 és 9 közötti számra keressen az alábbiak szerint.

A RegEx használatával .Pattern = "(0-9) +" Vége

Ezután a MyString = „A születési dátum éve 1985” változó ez 0-tól 9-ig tartja az értékeket, így az üzenetdobozunk IGAZ értéket ad vissza.

MyString = "A születési dátum év ???" nincs 0-tól 9-ig terjedő száma, ezért a FALSE értéket adja vissza, ahogy az üzenetdobozok eredményeznek.

érdekes cikkek...