2016-04-25 14 views
0

In VB.NET/C# .NET wollen alle "% 0D% 0A% 0D% 0A" in einer Zeichenkette mit% 0D% 0A“ersetzen. Ich habe versucht,alle Muster in einem String Ersetzen

stringtempA = Regex.Replace(stringtemp, "%0D%0A%0D%0A", "%0D%0A") 
    stringtempA = Strings.Replace(stringtemp, "%0D%0A%0D%0A", "%0D%0A") 

Es gibt mehrere Vorkommnisse in stringtemp.Es könnte beispielsweise sein "% 0D% 0A% 0D% 0A% 0D% 0A% 0D% 0A% 0D% 0A% 0D% 0A% 0D% 0A% 0D% 0A% 0D% 0A% 0D% 0A% 0D% 0A% 0D% 0A "und nur das erste Vorkommen wird ersetzt. Wie erfolgt dies mit dem Befehl Ersetzen? Wird das Problem durch die Prozentzeichen verursacht? Ich so, wie entkomme ich ihnen?

+0

Was ist Ihre erwartete Ausgabe für '% 0D% 0A% 0D% 0A% 0D% 0A% 0D% 0A% 0D% 0A % 0D% 0A% 0D% 0A% 0D% 0A% 0D% 0A% 0D% 0A% 0D% 0A% 0D% 0A'? –

+0

Verwenden Sie 'StringTempA = Regex.Replace (StringTemp," (% 0D% 0A) (% 0D% 0A) + "," $ 1 ")' –

+0

Sorry, das war kein gutes Beispiel. In der Zeichenfolge möchte ich je zwei Vorkommen auf eins reduzieren. % 0D% 0A% 0D% 0A geändert zu% 0D% 0A – Ricardo

Antwort

1

Verwenden Sie die Replace-Funktion aus der String-Variablen selbst.

C#

stringtempA = stringtemp.Replace(@"%0D%0A%0D%0A", @"%0D%0A"); 

vb.net

stringtempA = stringtemp.Replace("%0D%0A%0D%0A", "%0D%0A") 
+0

Danke. Interessant. Das funktioniert in C#, aber nicht in VB.net. Es muss etwas mit dem Standardverhalten von Replace sein und das Prozentzeichen in der Zeichenfolge muss maskiert sein. – Ricardo

+0

@ Zeichen entkommt alle Sonderzeichen in C# version.Ich habe die vb.net-Version bearbeitet –