为了账号安全,请及时绑定邮箱和手机立即绑定

如何在保留'\n'的同时替换'\'?

如何在保留'\n'的同时替换'\'?

守着星空守着你 2022-06-22 19:01:51
我有这个数据:bytesObj = b'{"a":1,"b":"test","c":"\xfc\\\\\xba\xda\\n123"}'tmpStr = bytesObj.decode('gb18030','ignore')tmpStr{"a":1,"b":"test","c":"黒\\黑\\n123"}我有什么尝试:import reb = re.sub(r'\\', '', tmpStr)然后我得到:{"a":1,"b":"test","c":"黒黑n123"}我的预期输出:{"a":1,"b":"test","c":"黒黑\n123"}你能帮我吗?
查看完整描述

2 回答

?
慕码人2483693

TA贡献1860条经验 获得超9个赞

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


查看完整回答
反对 回复 2022-06-22
?
慕斯王

TA贡献1864条经验 获得超2个赞

你也可以放弃 reg ex。


newStr = ''

for index, char in enumerate(tmpStr):

  if char == '\\' and tmpStr[index+1] != 'n': 

    newStr += ''

  else:

    newStr += tmpStr[index]

print(newStr)


查看完整回答
反对 回复 2022-06-22
  • 2 回答
  • 0 关注
  • 89 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信