如何用双引号替换反斜杠双引号?

时间:2017-03-14 12:15:13

标签: c#

我一直在努力进行简单的替换。并需要一个好的解决方案。背景:它是一个用\“编码的xml字符串,这些字符串必须是”才能用serializer.Deserialize反序列化它。

我想用一个双引号替换反斜杠doublequot,如“\”hello \“”这样的字符串,所以字符串是“”hello“”。文本很长,因此无法删除反斜杠。谢谢你的建议。 我认为应该是

sudo apt-get install php5-curl

3 个答案:

答案 0 :(得分:1)

您的示例字符串不包含任何反斜杠,您只是用它来掩盖双引号。这包含一个开头的反斜杠和一个结尾的反斜杠:

$stmt = $this->run("INSERT INTO `blockedIPS`(`ip`,`date`) VALUES (?,NOW())");
$stmt->execute([$ip]);

echo Common::error('You have tried to log in too many times incorrectly. Your account has now been frozen.');

Common::emailAdmin("The following IP address has now been blocked from logging in: $ip");

如果您想用一个双引号替换它:

if ($ipBlock->rowCount() >= 1) {
  // IP has been blocked already
  echo Common::error('You have tried to log in too many times incorrectly. Your account has now been frozen.');
  // prevent further access
} else {
 // do the rest, including blocking IP here
}

您必须单击调试器中的放大镜才能看到字符串的实际值:

enter image description here

enter image description here

答案 1 :(得分:0)

实际上并没有\"编码。这实际上是一个内容为" teetete "的字符串。为了显示它,或者编译字符串,你必须转义引号,这就是为什么你有:

string s = "\" teetete \"";

其中包含反斜杠引号的字符串,即\" 实际将如下所示:

string s = "\\\" teetete \\\"";

也就是说,文字\\和文字\的{​​{1}}有一组\"。如果你想替换那个,那么它几乎就是你所写的:

"

这会将字符串中的任何string t = s.Replace("\\\"", "\""); 转换为\",除非您将其打印成某些VB.NET代码,否则我猜测它是您真正想要的。 ,在这种情况下"会更合适。

答案 2 :(得分:0)

目前尚不清楚您想要做什么,但听起来您有一个包含双引号字符的XML字符串(在调试器中显示为\"),您需要将其替换为{{ 1}}允许XML解析器理解它。在这种情况下,对"的简单调用可能就足够了(尽管我想象实际上有一些边缘情况需要用更复杂的东西来解决)。