Ich bin schonmal etwas weitergekommen und kann herausfinden, ob überhaupt ein Platzhalter gefunden wurde und könnte alle Platzhalter auf einen Schlag ersetzen.
Set j = New Javasession
Set c = j.GetClass("java.util.regex.Pattern")
Set jpattern = c.compile(pattern)
Set matcher = jpattern.matcher(body)
b = matcher.matches()
If b = True Then
Set body = matcher.replaceAll("%test%")
End If
Aber ich benötige eine Liste aller gefundenen Platzhalter, die dem Reg-Ausdruck entsprechen.
Für eine reine Java-Umgebung habe ich ein Beispiel gefunden, aber ich weiß nicht, wie ich das in Lotusscript umgesetzt bekomme:
Pattern p = Pattern.compile(regexPattern);
matches<String> list = new ArrayList<String>();
Matcher m = pattern.matches(input);
while (m.find()) {
matches.add(m.group());
}
Ich müsste die Liste so erhalten, dass ich anschließend mit Lotusscript so weitermachen kann:
Bin leider gerade erst über diesen Thread gestolpert. Ich hatte sowas mal mittels VBScript- Objekt gelöst, hier mal Beispielcode: 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. Erster Platzhalter %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 strMatch In matches
MessageBox strMatch.Value
End ForAll
MessageBox ("Gefunden!")
Else
MessageBox ("nicht gefunden")
End If
Damit sparst Du Dir den Java- Umweg, und Du hattest ja explizit nach VBScript Regexp gefragt...
Ich denke, ich habe es hinbekommen. Muss noch eingebaut und durchgetestet werden, aber sieht schonmal vielversprechend aus:
Set j = New Javasession
Set c = j.GetClass("java.util.regex.Pattern")
Set jpattern = c.compile(pattern)
Set matcher = jpattern.matcher(body)
i = 0
While matcher.find()
i = i + 1
Print " *** gefunden wurde: " & matcher.group(1)
Wend