Mi az a RegEx az Excel VBA-ban?
A RegEx a „ Regular Expression ” kifejezé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.
