python - 如何在保留'\n'的同时替换'\'?
问题描述
我有这个数据:
bytesObj = b'{"a":1,"b":"test","c":"\xfc\\\\\xba\xda\\n123"}'
tmpStr = bytesObj.decode('gb18030','ignore')
tmpStr
{"a":1,"b":"test","c":"黒\\黑\\n123"}
我有什么尝试:
import re
b = re.sub(r'\\', '', tmpStr)
然后我得到:
{"a":1,"b":"test","c":"黒黑n123"}
我的预期输出:
{"a":1,"b":"test","c":"黒黑\n123"}
你能帮我吗?
解决方案
n
您可以通过排除after来做到这一点\
。
b = re.sub(r'\\(?!n)', '', tmpStr)
这导致:
{"a":1,"b":"test","c":"黒黑\n123"}
您还可以通过使用|
管道符号来使用字符集合。在下面\n
和\x
被忽略。
b = re.sub(r'\\(?!n|x)', '', tmpStr)
附录
(?! look ahead operator
推荐阅读
- c# - C# - 在发送到电子邮件 System.ObjectDisposedException 中附加 FileStream
- ruby - Ruby 如何使用生成随机数
- angular - 如何在 Angular 中使用和导出我的类中的对象数组
- java - 不能从另一个类调用方法?
- android-studio - Flutter 在运行选项卡中禁用系统调试消息
- java - 如何为所有屏幕尺寸制作灵活的 UI?
- reactjs - 如何在 vue 中执行类似 React componentwillreceiveprops 的操作
- imgur - Imgur API - 注册应用程序时出现 400 错误
- django - 我究竟该如何使用 HStoreField?
- regex - 如何替换查询字符串中的第一个参数?