Autor Thema: Alternative zu VBScript Regexp?  (Gelesen 5811 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.883
  • 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.883
  • 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