从.NET中的字符串中删除双引号

时间:2009-07-24 13:59:51

标签: c# .net vb.net

我正在尝试匹配一些格式不一致的HTML,需要删除一些双引号。

电流:

<input type="hidden">

目标:

<input type=hidden>

这是错误的,因为我没有正确地逃避它:

  

s = s.Replace(“”“,”“);

这是错误的,因为没有空白字符(据我所知):

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

用空字符串替换双引号的语法/转义字符组合是什么?

12 个答案:

答案 0 :(得分:179)

我认为你的第一行实际上可行,但我认为你需要四个引号来包含一个字符串(至少在VB中):

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

对于C#,您必须使用反斜杠转义引号:

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

答案 1 :(得分:25)

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

您需要使用\来转义字符串中的双引号字符。

答案 2 :(得分:15)

我没有看到我的想法已经重复,所以我建议您在Microsoft文档中查看{#1}} C#,您可以添加要修剪的字符,而不是简单地修剪空格:< / p>

string withQuotes = "\"hellow\"";
string withOutQotes = withQuotes.Trim('"');

应该导致withOutQuotes为"hello"而不是""hello""

答案 3 :(得分:14)

您可以使用以下任何一种:

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

...但我很好奇你为什么要那样做?我认为保持引用属性值是一种好习惯吗?

答案 4 :(得分:6)

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

答案 5 :(得分:5)

c#:"\"",因此s.Replace("\"", "")

vb / vbs / vb.net:""因此s.Replace("""", "")

答案 6 :(得分:3)

你必须用反斜杠来逃避双引号。

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

答案 7 :(得分:1)

s = s.Replace(@“”“”,“”);

答案 8 :(得分:1)

这对我有用

//Sentence has quotes
string nameSentence = "Take my name \"Wesley\" out of quotes";
//Get the index before the quotes`enter code here`
int begin = nameSentence.LastIndexOf("name") + "name".Length;
//Get the index after the quotes
int end = nameSentence.LastIndexOf("out");
//Get the part of the string with its quotes
string name = nameSentence.Substring(begin, end - begin);
//Remove its quotes
string newName = name.Replace("\"", "");
//Replace new name (without quotes) within original sentence
string updatedNameSentence = nameSentence.Replace(name, newName);

//Returns "Take my name Wesley out of quotes"
return updatedNameSentence;

答案 9 :(得分:1)

如果您只想从字符串的末尾(而不是中间)剥离引号,并且字符串的任何一端都可能有空格(即解析CSV格式文件,其中有一个逗号之后的空格,然后你需要调用Trim函数两次 ...例如:

string myStr = " \"sometext\"";     //(notice the leading space)
myStr = myStr.Trim('"');            //(would leave the first quote: "sometext)
myStr = myStr.Trim().Trim('"');     //(would get what you want: sometext)

答案 10 :(得分:0)

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

彼此相邻的两个引号将作为字符串内的预期“字符”。

答案 11 :(得分:0)

如果您想删除单个字符,我想简单地读取数组并跳过该char并返回数组会更容易。我在自定义解析vcard的json时使用它。 因为它是带有“带引号”的文本标识符的错误json。

将以下方法添加到包含扩展方法的类中。

  public static string Remove(this string text, char character)
  {
      var sb = new StringBuilder();
      foreach (char c in text)
      {
         if (c != character)
             sb.Append(c);
      }
      return sb.ToString();
  }

然后您可以使用此扩展方法:

var text= myString.Remove('"');