VBA RegEx

Wat is RegEx in Excel VBA?

RegEx staat voor " Regular Expression " in VBA Excel en is een reeks tekens die het zoekpatroon definieert voor het vinden van een specifiek patroon van tekens in een reeks waarden. In een eenvoudig woord "kunnen we een reguliere-expressiepatroon maken en het gebruiken om naar de tekenreeks van dat patroon te zoeken".

VBA RegEx is een objectmodel. Ik weet dat het intimiderend is door naar de verklaring te kijken, maar het punt is dat de aard van het object. Een ding dat u hier moet onthouden, is dat VBA RegEx (reguliere expressie) een tekstfunctieobject is zoals onze andere tekstfuncties "LINKS, RECHTS, MIDDEN".

Hoe RegEx in Excel VBA inschakelen?

Zoals ik al zei, is VBA RegEx een objectmodel in VBA, net als onze externe software zoals "MS Word" en "MS PowerPoint". Evenzo is RegEx ook een Component Object Model (COM) waarnaar we moeten verwijzen in de VBA-editor. Volg de onderstaande stappen om RegEx in te schakelen.

Stap 1: Ga naar Visual Basic Editor (Alt + F11)

Stap 2: Ga naar Tools en referenties.

Stap 3: Nu ziet u verwijzingen naar het VBA-project. Scroll naar beneden en selecteer "Microsoft VBScript Regular Expression 5.5"

Stap 4: Klik nu op OK. We hebben nu toegang tot dit RegEx-object in VBA-codering.

Voorbeeld - Ik zal u nu een eenvoudig voorbeeld laten zien. Stel dat u de woorden "Verkoop 2019, Verkoop 2018 en Verkoop 2017" hebt. Als u het patroon definieert als [0 - 7], komt het overeen met alle getallen tussen 0 en 7, dus onze overeenkomsten zijn 201, 201 en 2017 in elke string.

VBA RegEx-patroon

Het patroon van de VBA RegEx-functie ziet er intimiderend uit en het kost wat tijd om het patroon te begrijpen. We kunnen hier twee soorten van een reeks tekens zien, de ene is "Letterlijke tekens" en de andere is "Metatekens".

  • Letterlijke tekens zoeken naar de exacte overeenkomst van de opgegeven tekenreeks. De letterlijke tekenreeks "EFG" zoekt bijvoorbeeld eenvoudig naar alle overeenkomsten van "EFG" in de opgegeven tekst.
  • Metatekens zijn niets anders dan een combinatie van tekens met een exacte betekenis in het RegEx-patroon. Dit is totaal anders dan letterlijke karakters. Het is een enorm onderwerp om te behandelen, hieronder staan ​​enkele van de belangrijke syntaxis.
SyntaxisOmschrijvingVoorbeeldVoorbeeld Match
.Het komt overeen met elk afzonderlijk teken van de invoertekenreeksptPet. Pot, Put, Patroon
[]Het komt overeen met elk afzonderlijk teken tussen de haakjes van een invoertekenreeks[pt]Het komt overeen met p of t
[^]Het komt overeen met elk afzonderlijk teken, niet tussen de haakjes van een invoertekenreeks[^ pt]Het komt niet overeen met p of t
[Eerste Laatste]Het komt overeen met elk teken tussen het bereik in de haak[0-9]Het komt overeen met elk cijfer van 0 tot 9
[az]Het komt overeen met alle kleine letters van a tot z
[AZ]Het komt overeen met elk hoofdletter van A tot Z
\ sHet komt overeen met elk witruimteteken-Komt overeen met spatie, nieuwe regel of tabteken
\ SHet komt overeen met elk niet-wit-spatie-teken-Overeenkomende tekens zijn geen spatie, geen nieuwe regel of geen tabteken
\ dHet komt overeen met elk teken van één cijferSE 5 VG 6Wedstrijden 5 en 6
\ DHet komt overeen met elk niet-cijferig tekenSE 5 VG 6Komt overeen met SEVG

Eigenschappen en methoden van RegEx-object

Zoals al onze objectmodellen heeft ook RegEx zijn eigen eigenschappen en methoden. Nu zullen we een voor een in detail bekijken.

Eigenschappen van VBA Regex-object

  • Patroon: dit wordt gebruikt om overeen te komen met de opgegeven tekenreeks.
  • Ignore Case: Dit is om hoofdletters en kleine letters te negeren.
  • Globaal: als u alle overeenkomsten in het patroon wilt vinden, dan is TRUE het argument, anders wordt de eerste overeenkomst gevonden.
  • Meerdere regels : als u nieuwe regeleinden wilt vinden, kunt u dit gebruiken.

Methoden van RegEx-object

  • Test: dit is om te testen of het patroon te vinden is in de meegeleverde string. Dit zal WAAR teruggeven als het wordt gevonden of anders FALSE.
  • Uitvoeren: hiermee worden alle overeenkomsten van het patroon tegen de zoekreeks geretourneerd.
  • Vervangen: hiermee wordt de zoekreeks vervangen door de nieuwe tekenreeks.

Voorbeeld van RegEx in VBA Excel

Bekijk nu de onderstaande voorbeeld-VBA-code.

U kunt deze VBA RegEx Excel-sjabloon hier downloaden - VBA RegEx Excel-sjabloon

Code:

Sub RegEx_Example () Dim RegEx As Object, MyString As String Set RegEx = CreateObject ("VBScript.RegExp") With RegEx .Pattern = "[0-9] +" End With MyString = "Geboortedatum is 1985" MsgBox RegEx .Test (MyString) MyString = "Geboortedatum is ???" MsgBox RegEx.Test (MyString) End Sub

fregular

In de bovenstaande code hebben we het patroon ingesteld om het nummer van 0 tot 9 als volgt te zoeken.

 With RegEx .Pattern = "[0-9] +" Einde met 

Dan is de variabele MyString = "Geboortedatum jaar is 1985", dit bevat de waarden van 0 tot 9, dus ons berichtvenster zal TRUE retourneren.

MyString = "Geboortedatum is ???" heeft geen nummers van 0 tot 9, dus retourneert FALSE als resultaat van de berichtvakken.