Co je RegEx v aplikaci Excel VBA?
RegEx znamená ve VBA Excel „ Regular Expression “ a je to posloupnost znaků, která definuje vyhledávací vzor pro vyhledání konkrétního vzoru znaků v řetězci hodnot. Jednoduše řečeno, „můžeme vytvořit vzor regulárního výrazu a použít jej k vyhledání řetězce tohoto vzoru.“
VBA RegEx je objektový model. Vím, že je to zastrašující při pohledu na vysvětlení, ale jde o to, že povaha objektu. Jedna věc, kterou si zde musíte pamatovat, je VBA RegEx (regulární výraz) je objekt textové funkce jako naše další textové funkce „LEFT, RIGHT, MID“.

Jak povolit RegEx v aplikaci Excel VBA?
Jak jsem řekl VBA, RegEx je objektový model ve VBA, stejně jako náš externí software jako „MS Word“ a „MS PowerPoint“. Podobně je RegEx také Component Object Model (COM), na který musíme odkazovat v editoru VBA. Chcete-li povolit RegEx, postupujte podle následujících kroků.
Krok 1: Přejít na editor jazyka (Alt + F11)

Krok 2: Přejít na Nástroje a odkazy.

Krok 3: Nyní uvidíte odkazy na projekt VBA. Přejděte dolů a vyberte „Microsoft VBScript regulární výraz 5.5“.

Krok 4: Nyní klikněte na, OK. K tomuto objektu RegEx můžeme nyní přistupovat v kódování VBA.
Příklad - Nyní vám ukážu jeden jednoduchý příklad. Předpokládejme, že máte slova „Prodej 2019, Prodej 2018 a Prodej 2017“. Pokud definujete vzor jako (0-7), bude odpovídat všem číslům od 0 do 7, takže naše shody budou 201, 201 a 2017 v každém řetězci.
VBA RegEx vzor
Vzor funkce VBA RegEx vypadá zastrašující a pochopení vzoru trvá nějakou dobu. Můžeme vidět dva druhy posloupnosti znaků, jeden je „literální znaky“ a druhý „metaznaky“.
- Doslovné znaky hledají přesnou shodu zadaného řetězce. Například doslovná posloupnost znaků „EFG“ jednoduše hledá všechny shody „EFG“ v uvedeném textu.
- Metaznaky nejsou nic jiného než kombinace znaků s přesným významem ve vzoru RegEx. To je úplně jiné než doslovné postavy. Je to obrovské téma. Níže uvádíme některé důležité syntaxe.
Syntax | Popis | Příklad | Příklad zápasu | |||
. | Odpovídá libovolnému jednomu znaku vstupního řetězce. | pt | Mazlíček Hrnec, Put, Vzor | |||
() | Odpovídá libovolnému jednomu znaku mezi závorkou vstupního řetězce. | (pt) | Odpovídá buď p, nebo t | |||
(^) | Odpovídá libovolnému jednomu znaku, nikoli mezi závorkou vstupního řetězce. | (pt) | Neshoduje se ani s p, ani s t | |||
(První poslední) | Odpovídá libovolnému znaku v rozsahu uvedeném v závorce. | (0-9) | Odpovídá jakékoli číslici od 0 do 9 | |||
(az) | Shoduje se s malými písmeny od a do z | |||||
(AZ) | Shoduje se s libovolnými velkými písmeny od A do Z. | |||||
s | Odpovídá libovolnému znaku prázdného místa. | - | Shoduje se s mezerou, novým řádkem nebo znakem tabulátoru | |||
S | Odpovídá libovolnému znaku, který není prázdný | - | Odpovídající znaky nejsou mezera, nový řádek ani znaky tabulátoru | |||
d | Odpovídá libovolnému jednomístnému znaku. | SE 5 VG 6 | Zápasy 5 a 6 | |||
D | Odpovídá libovolnému jednomístnému znaku | SE 5 VG 6 | Odpovídá SEVG |
Vlastnosti a metody objektu RegEx
Stejně jako všechny naše objektové modely má i RegEx své vlastní vlastnosti a metody. Nyní uvidíme jeden po druhém podrobně.
Vlastnosti objektu VBA Regex
- Pattern: This is used to match the provided string.
- Ignorovat velká písmena : Tímto způsobem ignorujete velká a malá písmena.
- Globální: Pokud chcete najít všechny shody ve vzoru, pak je argumentem PRAVDA, jinak bude nalezena první shoda.
- Víceřádkový : Chcete-li najít nové konce řádků, můžete použít toto.
Metody objektu RegEx
- Test: Toto slouží k otestování, zda lze vzor nalézt v zadaném řetězci. Vrátí hodnotu TRUE, pokud je nalezena, nebo FALSE.
- Provedení: Tím se vrátí všechny shody vzoru proti vyhledávacímu řetězci.
- Nahradit: Tím se vyhledávací řetězec nahradí novým řetězcem.
Příklad RegEx ve VBA Excel
Nyní se podívejte na níže uvedený příklad kódu VBA.
Kód:
Sub RegEx_Example () Dim RegEx As Object, MyString As String Set RegEx = CreateObject ("VBScript.RegExp") With RegEx .Pattern = "(0-9) +" End With MyString = "Datum narození je rok 1985" MsgBox RegEx .Test (MyString) MyString = "Datum roku narození je ???" MsgBox RegEx.Test (MyString) End Sub
pravidelný
Ve výše uvedeném kódu jsme nastavili vzor tak, aby prohledával číslo od 0 do 9 následujícím způsobem.
With RegEx .Pattern = "(0-9) +" End With
Proměnná MyString = „Datum narození je rok 1985“, která obsahuje hodnoty od 0 do 9, takže naše okno se zprávou vrátí TRUE.
MyString = „Datum narození je ???“ nemá žádná čísla od 0 do 9, takže vrátí FALSE jako výsledek polí zpráv.
