2016-07-15 14 views
1

Ich habe eine Zeichenfolge wie dieser ichErsetzen mit einem Zeichen eine Zeichenfolge ein spezifisches Muster von Text in

Always $1| Sometimes $27| Never $33|No Answer$0 

müssen $ + number + | mit Komma alle Vorkommen dieses Musters ersetzen ,

So ist die resultierende Zeichenfolge sollte

immer, manchmal, nie, Keine Antwort wie sein

So Wie kann ich ersetzen verwenden Funktion für diesen Zweck

Ich versuchte

Dim myText as strin ="Always $1| Sometimes $27| Never $33|No Answer$0" 
Regex.Replace(mytext, "\$(.+?)\|", ",") 

Aber das letzte $ und Zahl hält dort mit. So etwas sind immer wie diese

immer, manchmal, nie, Antwort Nein 0 $

Aber ich brauche die Endung $ 0 zu

Also das Endergebnis sein sollte, entfernen

Immer, manchmal, nie, keine Antwort

+0

@MattWilko Sorry..Added wenig mehr Details und mein Versuch. bitte sehen Sie es sich an –

Antwort

1

Sie können das Fragezeichen verwenden, damit optionale Zeichen übereinstimmen (das Pipe-Zeichen, aber auch Leerzeichen, falls erforderlich). Funktioniert so etwas für Sie?

Dim str As String = "Always $1| Sometimes $27| Never $33|No Answer$0" 
str = Regex.Replace(str, "\s?\$\d+\|?\s?", ",").TrimEnd({","c, " "c}) 
Console.WriteLine(str) 
Console.ReadLine() 

Ausgang:

Always,Sometimes,Never,No Answer 
+0

Waww .. Das ist genau, was ich suchte .. –