Autor Thema: Alternative zu VBScript Regexp?  (Gelesen 6035 mal)

Offline schroederk

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.924
  • Geschlecht: Männlich
  • Ich liebe dieses Forum!
Alternative zu VBScript Regexp?
« am: 01.07.15 - 09:45:22 »
Hallo,

ich muss ein Script umschreiben, damit dieses auch auf MAC-Rechnern läuft.
Durch die bisherige Verwendung von VBScript zum Suchen von Platzhaltern in einem Text ist dies nicht möglich.

Das VBScript-Regexp wird verwendet um alle in einem Text gefundenen Platzhalter in einem Array zu speichern und diese dann mittels FindAndReplace zu ersetzen.
Es gibt zwar die Funktion "Like" aber damit weiß ich nur, dass ein Platzhalter gefunden wurde, aber nicht welcher?

Kennt jemand eine funktionierende Alternative?
Ich wäre ja gerne weniger egoistisch, aber was hab ich davon?

Offline umi

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.062
  • Geschlecht: Männlich
  • one notes to rule'em all, one notes to find'em....
    • Belsoft AG
Re: Alternative zu VBScript Regexp?
« Antwort #1 am: 01.07.15 - 09:46:35 »
Den Regex Teil kannst Du in Java auslagern und dann mit LS2J ansprechen
Gruss

Urs

<:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Jegliche Schreibfehler sind unpeabischigt
http://www.belsoft.ch
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:>

Offline schroederk

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.924
  • Geschlecht: Männlich
  • Ich liebe dieses Forum!
Re: Alternative zu VBScript Regexp?
« Antwort #2 am: 01.07.15 - 09:58:34 »
Puh, mit Java hab ich noch nie was gemacht und LS2J ist Neuland für mich.
Hast Du da vielleicht ein Beispiel? Für's Suchen und Ersetzen finde ich lediglich die VBScript-Beispiele  :-[
Ich wäre ja gerne weniger egoistisch, aber was hab ich davon?

Offline umi

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.062
  • Geschlecht: Männlich
  • one notes to rule'em all, one notes to find'em....
    • Belsoft AG
Gruss

Urs

<:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Jegliche Schreibfehler sind unpeabischigt
http://www.belsoft.ch
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:>

Offline schroederk

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.924
  • Geschlecht: Männlich
  • Ich liebe dieses Forum!
Re: Alternative zu VBScript Regexp?
« Antwort #4 am: 01.07.15 - 14:21:46 »
Danke, damit habe ich erstmal Lesestoff.  ;D
Ich wäre ja gerne weniger egoistisch, aber was hab ich davon?

Offline schroederk

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.924
  • Geschlecht: Männlich
  • Ich liebe dieses Forum!
Re: Alternative zu VBScript Regexp?
« Antwort #5 am: 02.07.15 - 13:48:49 »
Ich bin schonmal etwas weitergekommen und kann herausfinden, ob überhaupt ein Platzhalter gefunden wurde und könnte alle Platzhalter auf einen Schlag ersetzen.

Code
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:

Code
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:

Code
ForAll m In matches


Ich wäre ja gerne weniger egoistisch, aber was hab ich davon?

Offline Tode

  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 6.896
  • Geschlecht: Männlich
  • Geht nicht, gibt's (fast) nicht... *g*
Re: Alternative zu VBScript Regexp?
« Antwort #6 am: 02.07.15 - 14:01:41 »
Bin leider gerade erst über diesen Thread gestolpert. Ich hatte sowas mal mittels VBScript- Objekt gelöst, hier mal Beispielcode:
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. 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...
Gruss
Torsten (Tode)

P.S.: Da mein Nickname immer mal wieder für Verwirrung sorgt: Tode hat NICHTS mit Tod zu tun. So klingt es einfach, wenn ein 2- Jähriger versucht "Torsten" zu sagen... das klingt dann so: "Tooode" (langes O, das r, s und n werden verschluckt, das t wird zum badischen d)

Offline schroederk

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.924
  • Geschlecht: Männlich
  • Ich liebe dieses Forum!
Re: Alternative zu VBScript Regexp?
« Antwort #7 am: 02.07.15 - 14:04:37 »
Sorry, Torsten, ich hatte explizit nach einer Alternative zu VBScript gefragt, damit es auch auf Mac-Rechnern läuft  ;)
« Letzte Änderung: 02.07.15 - 14:11:54 von schroederk »
Ich wäre ja gerne weniger egoistisch, aber was hab ich davon?

Offline Tode

  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 6.896
  • Geschlecht: Männlich
  • Geht nicht, gibt's (fast) nicht... *g*
Re: Alternative zu VBScript Regexp?
« Antwort #8 am: 02.07.15 - 14:11:08 »
Überlesen... sorry!
Gruss
Torsten (Tode)

P.S.: Da mein Nickname immer mal wieder für Verwirrung sorgt: Tode hat NICHTS mit Tod zu tun. So klingt es einfach, wenn ein 2- Jähriger versucht "Torsten" zu sagen... das klingt dann so: "Tooode" (langes O, das r, s und n werden verschluckt, das t wird zum badischen d)

Offline schroederk

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.924
  • Geschlecht: Männlich
  • Ich liebe dieses Forum!
Re: Alternative zu VBScript Regexp?
« Antwort #9 am: 02.07.15 - 16:58:53 »
Ich denke, ich habe es hinbekommen. Muss noch eingebaut und durchgetestet werden, aber sieht schonmal vielversprechend aus:

Code
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
Ich wäre ja gerne weniger egoistisch, aber was hab ich davon?

Offline ERR

  • Frischling
  • *
  • Beiträge: 46
  • Geschlecht: Männlich
Re: Alternative zu VBScript Regexp?
« Antwort #10 am: 05.08.15 - 15:18:02 »
Hallo schroederk,

hier ist die Java-Lösung mit Lotusscript-Wrapper zu finden:

http://www.openntf.org/projects/pmt.nsf/1af5f59bae92986c85256bae000f898c/02b49e9c66b9cd63862577ad00483a95?OpenDocument

MFG
ERR

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz