我一直在努力进行简单的替换。并需要一个好的解决方案。背景:它是一个用\“编码的xml字符串,这些字符串必须是”才能用serializer.Deserialize反序列化它。
我想用一个双引号替换反斜杠doublequot,如“\”hello \“”这样的字符串,所以字符串是“”hello“”。文本很长,因此无法删除反斜杠。谢谢你的建议。 我认为应该是
sudo apt-get install php5-curl
答案 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
}
您必须单击调试器中的放大镜才能看到字符串的实际值:
答案 1 :(得分:0)
实际上并没有\"
编码。这实际上是一个内容为" teetete "
的字符串。为了显示它,或者编译字符串,你必须转义引号,这就是为什么你有:
string s = "\" teetete \"";
其中包含反斜杠引号的字符串,即\"
实际将如下所示:
string s = "\\\" teetete \\\"";
也就是说,文字\\
和文字\
的{{1}}有一组\"
。如果你想替换那个,那么它几乎就是你所写的:
"
这会将字符串中的任何string t = s.Replace("\\\"", "\"");
转换为\"
,除非您将其打印成某些VB.NET代码,否则我猜测它是您真正想要的。 ,在这种情况下"
会更合适。
答案 2 :(得分:0)
目前尚不清楚您想要做什么,但听起来您有一个包含双引号字符的XML字符串(在调试器中显示为\"
),您需要将其替换为{{ 1}}允许XML解析器理解它。在这种情况下,对"
的简单调用可能就足够了(尽管我想象实际上有一些边缘情况需要用更复杂的东西来解决)。