Live-Forum - Die aktuellen Beiträge
Datum
Titel
07.05.2024 14:51:38
07.05.2024 13:27:17
Anzeige
Archiv - Navigation
1896to1900
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

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

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

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
Anzeige
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
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

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige