C# how to replace Slash Quote \\\"

2019-09-01 01:53发布

我试图创建一个搜索和替换字符串是这样的:

src=\"/path/file.jpg\"

src=\"http://mysite.com/path/file.jpg\"

通过搜索属性src和等号削减报价。 问题是创建搜索字符串,每次我这样做的时候,就变成了一个搜索

src=\\"/取代src=\"/

如果属性=“SRC”在这个领域,我怎么能得到它的工作?

string equalsSlashQuote = "=" + @"\" + "\"";
string search = property + equalsSlashQuote + "/";
string replace = property + equalsSlashQuote + SiteURL + "/";
input = input.Replace(search, replace);

问题是\,我甚至尝试添加它作为字符代码值92,它仍然成为\\在搜索变量。

Answer 1:

如果您在字符串前面放一个@,串becames“文字”,而无需使用控制字符或逃逸(与backslahses)。

所以@"hello\nico"将导致由斜线分开的话“你好”和“尼科”,而不是单词“你好”和“ICO”的换行分隔的字符串。

您还可以定义字符串没有@与这样的控制字符: "hello\\nico" ,这将有同样的结果。 第一反斜杠是一个控制字符,而不是字符串内的实际值。

注意:如果你的IDE /调试器显示的字符串值,在也将使用第二格式来显示文本。 所以里面的字符串反斜杠将通过把一个反斜杠之前被转义。 它看起来像字符串包含双斜线,但事实并非如此。 您可以验证这一点:

  • 检查字符串的长度和计数的字符。
  • 将值写入等的输出Debug.WriteLineConsole.WriteLine它将显示出字符串,因为它是,没有斜线的逃逸。

你说: 每次我这样做,就变成了一个搜索src=\\"/而不是src=\"/ 你确定吗? 我觉得你被IDE /调试器,它会显示与另一个反斜杠,这仅仅是一个控制字符字符串上当。



文章来源: C# how to replace Slash Quote \\\"