2012-02-22 18 views
19

Cómo sustituir la cadena por debajo en C#cadena doble cita sustituir en C#

actual:

"John K "GEN" Greg" 

El objetivo:

"John K \"GEN\" Greg" 

Esto está mal porque no voy a escapar de ella correctamente:

s = s.Replace(""","\""); 

What es la sintaxis para reemplazar las comillas con \ (barra inclinada)?

Cualquier ayuda sería apreciada.

Gracias

Respuesta

56
s = s.Replace("\"", "\\\""); 

o

s = s.Replace(@"""", @"\"""); 

En el primer ejemplo del " tiene que ser con una barra invertida, ya que de lo contrario sería poner fin a la cadena. Del mismo modo, en la cadena de reemplazo \\ se necesita para producir una sola barra invertida escapando del carácter de escape.

En el segundo ejemplo se usan literales literales, se escriben como @"...". En esos literales no se reconocen secuencias de escape, lo que le permite escribir cadenas que contienen muchas barras diagonales inversas de una manera mucho más limpia (como las expresiones regulares). La única secuencia de escape que funciona allí es "" para un solo ".

6

se debe utilizar una barra invertida doble:

s = s.Replace("\"", "\\\""); 
0

s = s.Replace("\"","\\\"");

¿Qué estás escapando dirigido? Si va a insertarlo en DB, considere usar prepared statements en su lugar. Si va a usarlo en su salida de HTML, considere usar algún motor de plantilla que lo haga por usted mismo.

0

Probar: var result = yourString.Replace("\"", "\\\"");

4

Para eliminar todas las frases de una cadena, probar:

field.Value = Regex.Replace (field.Value, @ "[\" "]", "", RegexOptions .Ninguna);

¡Qué dolor tratando de encontrar esta respuesta en Internet!

+0

Por alguna razón, otras respuestas no funcionaron para mí, ¡esto sí! ¡Gracias! –