Hallo allerseits
Ich möchte in Excel mit VBA Zeichenfolgen mit regulären Ausdrücken auswerten.
Das klappt soweit auch, allerdings möchte ich von der gefundenen Zeichenfolge nur einen Teil weiterverarbeiten.
Ich erklär das mal an einem Beispiel:
'variablen initialisieren
Dim reg_exp As Object, reg_exp_result As Object
Dim input_str as String
'Werte zuweisen
Set reg_exp = CreateObject(„vbscript.regexp“)
input_str= „1as fd&&aa&&aff asd sd&&q q&&af asdf sad&&ww&& fs aab694“
'Eigenschaften des reglären Ausdrucks
with reg_exp
.Pattern = „&{2}(.*)&{2}“
.IgnoreCase = True
.Global = True
.MultiLine = False
end with
'regulären Ausdruck anwenden
Set reg_exp_result = reg_exp.Execute(input_str)
'Resultate ausgeben
If reg_exp_result.Count > 0 Then
For Each reg_exp_result In reg_exp_result
MsgBox (reg_exp_result.Value)
Next
Else
MsgBox („not found“)
End If
'Resultat-Variable zurücksetzen
Set reg_exp_result = Nothing
Mit diesem Code werden die folgenden 3 Ausdrücke gefunden:
&&aa&&
&&q q&&
&&ww&&
Das ist aber nur fast, was ich möchte: In den Resultaten soll jeweils nur das gefunden werden, was zwischen den je zwei && steht. Anders gesagt: obwohl ich den ganzen Ausdruck brauche für die Suche, möchte ich jeweils im Resultat nur das haben, was ich im regulären Ausdruck eingeklammert habe --> (.*)
Das gewünschte Resultat wäre also:
aa
q q
ww
Kann mir jemand sagen, wie ich ich das hinkriege?
viele Grüsse,
Stephan