String splitten nach verschiedenen Teilstrings
Robert Lacroix
- asp.net
0 Holger Lersch0 Marcus0 Janko Wellmeier0 Calocybe
Hi,
ich programmiere an einem Webboard für ASP. Gibt es eine einfache Möglichkeit einen String nach verschiedenen Teilstrings zu splitten, und in den selben Array zu schreiben ? Beispiel, ich habe einen String der folgendermaßen aufgebaut ist: "bla, bla1. bla2 bla2 ! bla3 ?" Jetzt will ich den gesamten String in ein Array aufteilen und zwar mit den Trennzeichen "?", "!" und ".", so dass der Array: Array(0) = "bla, bla1", Array(1) = "bla2 bla2" und Array(2) = "bla3" entsteht.
Danke, Robert.
Hallo !
einen String der Form text="wort1;wort2;wort3;wort4"
kannst du mit der Funktion SPLIT den text anhand *eines* Trennzeichens (hier jetzt das Semikolon)
in einen Array unverwandeln.
textarray=SPLIT(text,";")
Ergebnis :
z.B. in textarray(0) steht : wort1
in textarray(3) steht wort4
...
Gruß
Holger
Moin Holger,
das mit dem Split ist mir bekannt, nur kann man damit nur nach einem Trennzeichen splitten und in einen Array schreiben, ich brauche aber eine Function, die nach mehreren Trennzeichen splitten und die Trennzeichen auch öfters vorkommen dürfen. Die Version von Janco hab ich auch schon in Erwähgung gezogen, nur habe ich gedacht es gäbe eine einfachere Variante. Danke an alle für die Mühe.
Robert.
Hi Robert !
Schau Dir folgenden Link dazu an :
http://www.learnasp.com/learn/strings.asp
cu
Marcus
Hallo!
Können sich bei Dir die Trennzeichen wiederholen?
Wenn Nein, dann würde ich einfach mit folgender Routine arbeiten:
x = 0
While InStr(text,".")>0
array(x) = left(text,InStr(text,".")-1)
text = mid(text,InStr(text,".")+1,Len(text))
x = x +1
Wend
Wenn Du das ganze dann noch in eine Function auslagerst, kannst Du sie für jedes Trennzeichen benutzen. Falls sich die Trennzeichen wiederholen, würd ich jetzt auf die Schnelle folgendes vorschlagen:
lookfor = InStr(text,1.Trennzeichen)
etc. halt so lange suchen, bis eins gefunden wurde
x = 0
While lookfor>0
If InStr(text,1.Trennzeichen)>0 Then
Abarbeitung wie oben
ElseIf InStr(text,2.Trennzeichen)>0 Then
s.o.
ElseIf ...
End If
und jetzt wieder wie oben alle Trennzeichen für lookfor abarbeiten, bis das mit dem kleinsten InStr-Wert(ungleich 0) gefunden wurde, was oben natürlich auch gemacht werden muß.
Wend
Damit solltest Du es dann eigentlich haben. Die Funktion sieht zwar etwas unbeholfen aus(ich hoffe, daß ich alles so rüberbringen konnte, wie ich es wollte), aber auf die Schnelle fiel mir nix anderes ein.
mfg
JankoW
Hi Robert!
Du kannst die Zerlegung in JavaScript (bzw. JScript) coden. Die String.split()-Methode in JS erlaubt regulaere Ausdruecke:
str = "bla, bla1. bla2 bla2 ! bla3 ?";
blubb = str.split(/[.!?]/);
Wenn Du die Leerzeichen, die um die eigentlichen Trennzeichen herum stehen, auch gleich weg haben willst, kannst Du
blubb = str.split(/\s*[.!?]\s*/);
verwenden.
Bye, Calocybe