2011-12-05 14 views
23

Tengo el siguiente códigoQuitar '' carbón de secuencia de C#

string line = ""; 

while ((line = stringReader.ReadLine()) != null) 
{ 
    // split the lines 
    for (int c = 0; c < line.Length; c++) 
    { 
     if (line[c] == ',' && line[c - 1] == '"' && line[c + 1] == '"') 
     { 
      line.Trim(new char[] {'\\'}); // <------ 
      lineBreakOne = line.Substring(1, c - 2); 
      lineBreakTwo = line.Substring(c + 2, line.Length - 2); 
     } 
    } 
} 

he añadido un comentario neta a la línea Me gustaría saber. Quiero eliminar todos los caracteres '\' de la cadena. ¿Es esta la forma correcta de esto? Yo no trabajo. Todos \ están todavía en la cadena.

+0

'TRIM (nuevo char [] { '\\'})' se eliminarán todos los caracteres \ desde el principio o el fin. Los 'recorta'. Como dice @ user978511, puede usar 'Replace (" \\ "," ")'. (Para su información, su uso del carácter @ significa "tomar esta cadena literalmente, sin aplicar reglas de escape") – JohnL

+0

Ninguna de las siguientes soluciones funciona para mí ... – rsy

+0

Regex.Unescape() – Alexander

Respuesta

75

que puede usar:

line.Replace(@"\", ""); 

o

line.Replace(@"\", string.Empty); 
+2

Eso es porque Reemplazar no cambia la cadena en sí , devuelve la cadena modificada. Entonces tienes que hacer como mi respuesta, y escribir 'line = line.Rep ...' –

+1

Estos no son barras. Estos son personajes de escape. Se usan aquí para escapar de las citas. Considere usar comillas simples en lugar de comillas dobles. No necesitarás barras allí entonces. –

+1

@PoiXen - En la cadena que ha publicado, '\" 'es una secuencia de escape que permite' '' aparecer en la cadena. No hay caracteres de barra invertida. – Oded

4

¿Por qué no simplemente esto?

resultString = Regex.Replace(subjectString, @"\\", ""); 
+1

Creo que debe ser "\\" o @ " "¿no? –

+1

@BaliC En realidad, no. Con un ** "\" ** obtiene el análisis "\" - Ilegal \ al final del patrón. .NET 3.5 – FailedDev

4

Trate de usar

String sOld = ...; 
String sNew =  sOld.Replace("\\", String.Empty); 
3

para eliminar toda '\' de una cadena, simplemente haga lo siguiente:

myString = myString.Replace("\\", ""); 
8

Usted puede utilizar String.Replace que básicamente elimina todas las ocurrencias

line.Replace(@"\", ""); 
2

Trim solo elimina caracteres al principio y al final de la cadena, es por eso que su código no funciona. Debe utilizar Replace lugar:

line.Replace(@"\", string.Empty); 
4

tratar de sustituir

string result = line.Replace("\\",""); 
2
  while ((line = stringReader.ReadLine()) != null) 
     { 
      // split the lines 
      for (int c = 0; c < line.Length; c++) 
      { 
       line = line.Replace("\\", ""); 
       lineBreakOne = line.Substring(1, c - 2); 
       lineBreakTwo = line.Substring(c + 2, line.Length - 2); 
      } 
     } 
Cuestiones relacionadas