Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Problem mit RegEx

Forumthread: Problem mit RegEx

Problem mit RegEx
14.09.2022 13:40:55
Rainer
Hallo zusammen,
ich versuche, mit Hilfe von RegEx in einer XML-Datei alle Vorkommen des folgenden Musters zu ermitteln: das Muster beginnt mit "FDP_", dann _kann_ ein "$"-Zeichen folgen, gefolgt von einer beliebigen Anzahl an Großbuchstaben oder Zahlen. Ich habe es mit folgendem Pattern probiert: "FDP_\$*[A-Z0-9][A-Z0-9]+", aber mir wird immer nur der 1. Match angezeigt und nicht alle.
Danke im voraus für Hilfe!
Gruß, Rainer
Anzeige

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Problem mit RegEx
14.09.2022 13:44:28
Fennek
Hallo,
zeige bitte den gesamten VBA-Code.
mfg
AW: Problem mit RegEx
14.09.2022 14:13:05
Rainer
Hallo Fenek,
hier der (verkürzte) Code:

Dim RegEx As Object, objFSO as object
Set RegEx = CreateObject("VBScript.RegExp")
Set objFSO = CreateObject("scripting.filesystemobject")
strFileText = objFSO.OpenTextFile(strFileName).ReadAll
With RegEx
.Pattern = "FDP_\$*[A-Z0-9][A-Z0-9]+"
End With
Set myMatches = RegEx.Execute(strFileText)
For Each myMatch In myMatches
Debug.Print myMatch.Value
Next myMatch
Gruß, Rainer

Anzeige
AW: Problem mit RegEx
14.09.2022 14:16:48
Fennek
Hallo,
versuche es mit diesen RegEx-Optionen:

regex.Global = True
Regex.IgnoreCase = false
regex.MultiLine = true
mfg
AW: Problem mit RegEx
14.09.2022 13:55:37
ChrisL
Hi Rainer
Fennek hat recht, denn vermutlich liegt es nicht am Pattern sondern am fehlenden Flag
regex.Global = True
cu
Chris
Anzeige
AW: Problem mit RegEx
14.09.2022 13:57:35
Daniel
Hi
muss es RegEx sein?
Prinzipiell kannst du auch mit Instr in eine DO-Schleife durch den Text durchgehen, um die einzelnen Fundstellen herauszufinden.
Dabei gibts du immer die alte Fundstelle + 1 als Startpostion der nächsten Suche an.

dim Pos as long
Pos = 0
Do
Pos = Instr(Pos + 1, DeinText, "FDP_")
if Pos = 0 then Exit Do
Loop
ist zwar nicht ganz so "sophisticated" wie RegEx, tuts aber genauso und ist auch für Menschen mit "normalen" VBA-Kenntnissen verständlich.
RegEx ist da schon eher Expertenwissen.
Gruß Daniel
Anzeige
AW: Problem mit RegEx
14.09.2022 14:19:44
Rainer
@Fennek, Chris: Danke, das "RegEx.Global=True" hat zum Erfolg geführt!
@Daniel: deinen Tipp mwerde ich auch ausprobieren.
Danke nochmal an alle für die schnelle Hilfe!
Grüße, Rainer
Zum testen von RegEx-Pattern...
14.09.2022 14:55:49
RegEx-Pattern...
... empfiehlt sich
https://regex101.com/
oder
https://regexr.com/
VG
Yal
Anzeige
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige