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

Eve*_*ien 87 .net c# vb.net

我试图匹配一些不一致格式的HTML,并需要删除一些双引号.

当前:

<input type="hidden">
Run Code Online (Sandbox Code Playgroud)

目标:

<input type=hidden>
Run Code Online (Sandbox Code Playgroud)

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

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

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

s = s.Replace('"', '');
Run Code Online (Sandbox Code Playgroud)

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

Joe*_*oey 193

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

s = s.Replace("""", "")
Run Code Online (Sandbox Code Playgroud)

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

s = s.Replace("\"", "");
Run Code Online (Sandbox Code Playgroud)

  • +1用于阅读标签并回答**C#和VB.NET,与大多数人不同:) (22认同)

Dav*_*vid 25

s = s.Replace("\"", "");
Run Code Online (Sandbox Code Playgroud)

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

  • 如果字符串中有更多嵌入的引号,这会产生副作用 (2认同)

小智 17

我没有看到我的想法已经重复,所以我建议你在string.TrimC#的Microsoft文档中查看你可以添加一个要修剪的字符,而不是简单地修剪空格:

string withQuotes = "\"hellow\"";
string withOutQotes = withQuotes.Trim('"');
Run Code Online (Sandbox Code Playgroud)

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


Fre*_*örk 14

您可以使用以下任一方法:

s = s.Replace(@"""","");
s = s.Replace("\"","");
Run Code Online (Sandbox Code Playgroud)

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


小智 7

如果您只想从字符串的末尾(而不是中间)去除引号,并且字符串的任一端都有可能存在空格(即解析 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)
Run Code Online (Sandbox Code Playgroud)


Ste*_*ham 6

s = s.Replace("\"",string.Empty);
Run Code Online (Sandbox Code Playgroud)


svi*_*nto 5

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

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