String splitten

mafiamix

Mitglied
Hallo,

ich möchte einen String splitten bzw. möchte ich, dass eine Zahl, welche variabel ist, mit einer Klammer davor und danach komplett ersetzt wird.

Wenn ich also z. B. den Stringinhalt "(4) text" habe, soll (4) komplett ersetzt werden. Sicher könnte man jetzt einfach mit Replace bzw. Remove herkommen und die (4) ersetzen, jedoch ist die 4 eben immer variabel und nur die 2 Klammern stehen immer da.
Es sollte also auch mit dem gleichen Code beispielsweise bei "(104) text2" gehen.

Weiß jemand wie der Code für sowas gehen könnte?

Hab mir erst gedacht, dass ich es so lösen könnte.

dim test as integer
hallo = hallo.remove("(" & test & ")")

aber leider funktioniert der Code nicht. ^^


Lg,

mafiamix
 
zu einer ähnlichen Frage hatte ich schonmal das hier gepostet
Code:
string input = string.Format("Eine Zeile {0}noch ne Zeile {0}(123456) {0}Noch ne Zeile", Environment.NewLine);
string output = Regex.Replace(input, @"\([0-9]{1,}\)", "Zu ersetzende Text", RegexOptions.Multiline);
vielleicht ist es das was du suchst. (Habs für dich um Klammern erweitert :D)
 
Öh.
Ist C oder?
Ich bräuchte das aber für VB.net und hab den Code n bisschen nachgeschaut, bei dir wird doch nur {0} jeweils immer für eine neue Zeiler ersetzt.
Und ich kann den Text nich eingeben, da der Text immer variabel ist, also weil der Text sich immer ändern kann und somit auch die Zahl, die in den Klammern steht.
 
input wird einfach über string.Format gesetzt das {0} steht als Parameter Index für die string.Format Funktion (welche NewLine bekommt) und ist einfach nur ein Beispiel string um schnell das Ergebnis zu sehen.
input kannst du durch jeden beliebigen string ersetzen und ersetzt selber wird (123456).
Code:
Dim input As String = String.Format("Eine Zeile {0}noch ne Zeile {0}(123456) {0}Noch ne Zeile", Environment.NewLine)
Dim output As String = Regex.Replace(input, "\([0-9]{1,}\)", "Zu ersetzende Text", RegexOptions.Multiline)
 
Hab da noch ne Frage zu diesem Regex.Replace
Regex ist doch nur ein normaler String, oder?
Weil wenn ich Regex durch den String von mir ersetze, bekomme ich immer Probleme mit "RegexOptions.Multiline". Multiline ist ja normal eine Eigenschaft von einer Textbox, aber auch wenn ich in der 2. Zeile statt "RegexOptions.Multiline" "Textbox1.Multiline" eingebe, kommt auch der Fehler:

Fehler bei der Überladungsauflösung, da keine zugreifbare "Replace" diese Anzahl von Argumenten akzeptiert.
 
Regex ist eine Klasse, Replace eine statische Methode dieser Klasse, RegexOptions ist ein enum der als Parameter an Regex.Replace übergeben wird.

RegexOptions beschreibt im Prinzip wie gesucht werden soll. Hier könntest du auch Singleline angeben da du ja Zeilenbeginne und Ende nicht mit abprüfen musst.

Regex selbst ist im Namespace System.Text.RegularExpressions

Nachtrag:
Ersetzen musst du input, war halt blos von mir vielleicht falsch gewählter Name für einen string.

Noch ein Nachtrag
Regular Expressions - oder, auf Deutsch, reguläre Ausdrücke - dienen dazu, einen Text auf bestimmte Zeichenfolgen zu überprüfen und diese dann - bei Bedarf - zu manipulieren. Diese Suchbegriffe können durch die regexp-Syntax sehr variabel gehalten werden.
Quelle: http://www.traum-projekt.com/forum/...rials/27341-workshop-regular-expressions.html
 
Zuletzt bearbeitet:
Danke. Genau das hab ich gesucht.
Bekommst gleich ne Bewertung. :)

//Edit: Muss erst genug andere Beiträge bewerten, um dich erneut bewerten zu können. :/
Werd die Bewertung hier aber nachholen.
 

Neue Beiträge

Zurück