c++ - 替换为单个 Blackslash 在 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=0\r\no=- 6804998800185322649 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.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 \
推荐阅读
- reactjs - 将脚本标签和函数添加到下一个 js?
- python - 如何在 Flask 上获取完整的文件路径?
- firebase - 如何链接firebase中不同集合中的两个文档以将它们一起更新?
- ios - 天气图标未显示在天气 pp 的图像视图中
- python - 如何在 Google Cloud Platform(计算引擎)中使用 PyCharm 或 Anaconda Spyder?
- sql - SQL通过从双表中选择插入表
- java - 使用休眠将 LocalDateTime 持久化为 sqlite-db 中的 ISO-String
- java - 对于相同的属性,Intellij 显示其中一个未使用
- javascript - 如何在前端使用“%”修复 DecimalField 上的 WTForm 验证错误(“不是有效的十进制值”)?
- python - 使用 Python 创建 Nifi PutSQL 处理器