2016-05-11 16 views
3
oldvalue = "RGB = (255,000,255,000)" 
newvalue = "RGB = (255,255,000,000)" 
File.WriteAllText("C:\\Users\\devdrone\\Desktop\\Abc.txt", 
        Regex.Replace(File.ReadAllText("C:\\Users\\devdrone\\Desktop\\Abc.txt"), 
            oldvalue, 
            newvalue)); 

Dies wird nicht durch den neuen Wert ersetzt.Wie ersetzt man Text, der runde Klammern (Klammern) enthält, durch Regex?

Aber es funktionierte mit

oldvalue = "RGB 1" 
newvalue = "RGB 0" 
+0

Sind Sie sicher, dass es _exact_ Spiele von 'RGB = (255000255000)' in 'Abc.txt'? –

+3

Klammern in Regex haben eine besondere Bedeutung, so würde es es verwechseln – BugFinder

+0

@Anton Ja gibt es eine genaue Übereinstimmung von RGB = (255,000,255,000) in ABC.txt –

Antwort

4

Da die Zeichenfolge, die Sie eine Reihe Zeichenfolge ersetzen möchten ist, verwenden Sie nicht Regex.Replace aber String.Replace:

string oldvalue = "RGB = (255,000,255,000)"; 
string newvalue = "RGB = (255,255,000,000)"; 
File.WriteAllText("C:\\Users\\devdrone\\Desktop\\Abc.txt", 
      File.ReadAllText("C:\\Users\\devdrone\\Desktop\\Abc.txt").Replace( 
          oldvalue, 
          newvalue)); 
+0

Was meinst du mit Zeilenfolge? –

+0

@DevDroneBhowmik Nun, ich meine, dass die Zeichenfolge Sie, was zu finden, erfordert keine Regex gefunden werden –

+0

Wann sollte ich Regex verwenden? –

0

Da oldvalue Zeichen enthält, die eine besondere Bedeutung haben in Regex wie ( und ) sollten Sie sie mit \ Zeichen entkommen.

oldvalue = "RGB = \\(255,000,255,000\\)" 
//or oldvalue = @"RGB = \(255,000,255,000\)" 
newvalue = "RGB = (255,255,000,000)" 
File.WriteAllText("C:\\Users\\devdrone\\Desktop\\Abc.txt", 
        Regex.Replace(File.ReadAllText("C:\\Users\\devdrone\\Desktop\\Abc.txt"), 
            oldvalue, 
            newvalue)); 
0

Bitte versuchen Sie smth wie folgt aus:

regexp = "(.*)\((.*)\)(.*)" 
newvalue = "RGB = (255,255,000,000)" 
File.WriteAllText("C:\\Users\\devdrone\\Desktop\\Abc.txt",  
    Regex.Replace(File.ReadAllText("C:\\Users\\devdrone\\Desktop\\Abc.txt"), 
            regexp, 
            newvalue)); 
+0

Dies würde 'wasd()' ersetzen, was nicht benötigt wird ... –

Verwandte Themen