Domino 9 und frühere Versionen > ND9: Entwicklung

benötige Hilfe bei einfacher Regexp-Suche

(1/2) > >>

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