替换为单个黑斜杠在Qt中添加"
Replacing to single Blackslash adds " in Qt
我正在尝试替换字符!
以Qt,但是在这样做时,它增加了一个额外的
"
,这很难解决。
我有一个这样的原始数据:""v=0\r\no=- 1534195387162130326 2 IN IP4 127.0.0.1\r\ns=-\r\nt=0 0\r\na=group:BUNDLE audio video\r\na=msid-semantic: WMS\r\nm=audio 9 UDP/TLS/RTP/SAVPF 111 103 104 9 102 0 8 106 105 13 110 112 113 126...
我希望数据是这样的:"v=0rno=- 6804998800185322649 2 IN IP4 127.0.0.1rns=-rnt=0 0rna=group:BUNDLE audio videorna=msid-semantic: WMSrnm=audio 9 UDP/TLS/RTP/SAVPF 111 103 104 9 102 0 8 106 105 13 110 112 113 126...
所以,我的实现是这样的:
data.replace("\", "!");
data.remove(""");
data.replace("!", """);
它按预期运行直到remove
但之后它增加了额外的"
,我最终得到的输出是:"v=0"r"no=- 757357016964659282 2 IN IP4 127.0.0.1"r"ns=-"r"nt=0 0"r"na=group:BUNDLE audio video"r"na=msid-semantic: WMS"r"nm=audio 9 UDP/TLS/RTP/SAVPF 111 103 104 9 102 0 8 106 105 13 110 112 113 126...
.
任何解决的想法都会很棒。
似乎,您不是在要求用替换
!
,而是要从字符串中删除双反斜杠和转义引号。
您可以通过以下两行实现此目的:
data.remove("\""); // remove "
data.replace("\\", "\"); // replace \ with
您将调试输出与字符串的内容混为一谈,大多数调试环境都应用了类似 C 的转义。请记住,您可以断言字符串中的内容,而不会有任何歧义。即:
#include <QtCore>
int main() {
// 01234567 89AB
QString s("abc!def\ghi"");
auto const originalSize = s.size();
Q_ASSERT(originalSize == (3*3 + 3)); // three 3-letter groups, and three punctuation characters
Q_ASSERT(!s.startsWith('"')); // doesn't start with a quote
Q_ASSERT(s.startsWith('a'));
Q_ASSERT(s[3] == '!');
Q_ASSERT(s[7] == '');
Q_ASSERT(s[11] == '"');
s.replace('!', '');
Q_ASSERT(s.size() == originalSize); // the size hasn't changed
Q_ASSERT(s[3] == '');
qDebug() << s;
}
您可以使用此示例来播放字符串内容,以向自己证明您了解正在发生的事情。请注意,调试输出将如下所示,尽管字符串中没有其他引号。
"abc\def\ghi""
- QT通过C++添加映射QML项目
- 如何将点击的信号和插槽添加到qt中的自定义按钮中
- Qt和C++:将QLineEdit添加到QTabWidget中
- 如何在qt中将对象添加到现有布局中?--已解决
- 如何将网络模块添加到 QT pro 文件中?
- Qt:无法直接为带有子项的小部件添加滚动条
- Qt - 为什么Visual Studio 2019在qml资源中添加10Mb文件后无法再编译我的项目?
- QT:添加到QMenu后,谁是QActionGroup成员的父级
- Qt添加到QGraphicsLinearLayout时QGraphicsItems会发生什么
- Qt-添加元素到映射和内存泄漏
- 向QComboBox-QT添加多个项目
- Windows 8 C++ Qt 添加新用户
- 将Qt添加到现有的Visual Studio 2013 C++项目中
- 向 QT C++添加代码示例
- QT添加编译器
- Qt c++添加模块
- QT添加部件到UI的任何地方
- iOS:将Qt添加到现有Xcode项目中
- 使用Qt添加高斯白噪声
- c++ qt添加图像到匿名标签(或其他小部件)