如何从QString中删除反斜杠?

How to remove backslashes from QString?

本文关键字:删除 QString      更新时间:2023-10-16

使用QNetworkManagerget方法,我正在从网址接收一个json。
执行:qDebug()<<(QString)reply->readAll();结果是:

"rn[{"id":"1","name":"Jhon","surname":"Snow","phone":"358358358"}]"

所以我正在做strReply = strReply.simplified();,结果是:

"[{"id":"1","name":"Jhon","surname":"Snow","phone":"358358358"}]"

但是我不能像 Json 那样使用它来解析它,以便在我的 qt 程序中使用它。 所以我认为我需要删除每个反斜杠并获得:

"[{"id":"1","name":"Jhon","surname":"Snow","phone":"348348348"}]"

我尝试了strReply.remove(QRegExp( "\" ) );但是的任何奇怪的串联都会导致解释器将最后一个之后的每一件事都视为字符串。

您可能遇到了qDebug的功能,该功能会转义引号和换行符。您的字符串很可能实际上没有任何反斜杠。

当您尝试使用qDebug()打印字符串时,如果您不希望 qDebug() 在输出中人为地插入反斜杠,则需要使用qDebug().noquote()

所以你的字符串应该没问题。它根本没有任何反斜杠。

如文档中所述 您可以使用删除功能删除字符

QString t = "Ali Baba";
t.remove(QChar('a'), Qt::CaseInsensitive);
// Will result "li Bb"

你可以用"\\"代替"a"来删除QString的反斜杠