Domino 9 und frühere Versionen > ND9: Entwicklung
benötige Hilfe bei einfacher Regexp-Suche
schroederk:
Hallo,
ich kenne zwar Reguläre Ausdrücke aus anderen Sprachen, aber ich komme beim VBScript-Teil im Lotusscript nicht weiter.
Offenbar fehlt dem Suchpattern noch irgendetwas bzw. ist noch falsch.
Gesucht werden soll (später) alle Wörter, die durch % begrenzt sind.
Laut http://regex101.com/r/iT0uZ3/1 funktioniert der Suchpattern, aber nicht hier.
Mit anderen Suchpatterns wie z.B. pattern = |test| funktioniert es.
Hat da jemand einen Tip?
--- Zitat --- strVorlagentext = "Dies ist ein Test. Funktioniert leider zu 0%. %Test123% Fertig."
pattern = |%(\w+)%|
Set regex = CreateObject("VBScript.Regexp")
regex.Global = True
regex.IgnoreCase = True
regex.Pattern = pattern
match = regex.Test(strVorlagentext)
If match = True Then
Messagebox ("Gefunden!")
Else
Messagebox ("nicht gefunden")
End If
--- Ende Zitat ---
Tode:
Seltsam: Ich habe Deinen Code hier in einen Agenten kopiert, und da kommt "gefunden"...
Und hiermit komme ich sogar an die einzelnen Matches ran:
--- Code: --- Dim strVorlagentext As String
Dim pattern As String
Dim regex As Variant
Dim match As Variant
Dim matches As Variant
strVorlagentext = "Dies ist ein Test. Funktioniert leider zu 0%. %Test123% Fertig %UndNochEiner%."
pattern = |%(\w+)%|
Set regex = CreateObject("VBScript.Regexp")
regex.Global = True
regex.IgnoreCase = True
regex.Pattern = pattern
Set matches = regex.Execute(strVorlagentext)
If matches.Count >0 Then
ForAll objMatch In matches
MessageBox objMatch.Value
End ForAll
MessageBox ("Gefunden!")
Else
MessageBox ("nicht gefunden")
End If
--- Ende Code ---
schroederk:
Wenn ich Dir sage, dass ich jetzt seit 2 Tagen auf den Code schaue und den Fehler nicht gefunden habe.
Eine einfache Messgebox hätte das Problem gezeigt. Ich hatte für den strVorlagentext den Inhalt eines Feldes nehmen wollen (strVorlagentext = uidoc.FieldGetText("Vorlagentext") aber das falsche Feld angegeben. Dadurch wurde 'test' gefunden, aber nicht '%test%'.
Ich schäme mich... :-[
Hätte ich doch eher gepostet, dann wäre der Wald vor meinen Augen schon viel früher abgeholzt worden.
Lieben Dank für die Hilfe.
Tode:
Rubber duck debugging... Hilft (fast) immer
schroederk:
Das problem ist so oft, dass man bestimmte Dinge einfach nicht in Frage stellt.
Bei Problemlösungen, die solange auf sich warten lassen, muss ich mir einfach mal angewöhnen, alles in Frage zu stellen.
Da ich mich mit regulären Ausdrücken öfters mal etwas schwer tue, habe ich das Problem einzig hier vermutet. Grober Fehler.
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln