如何替换“\”而保留“\n”?

2024-09-26 22:54:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下数据:

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"}

你能帮我吗?你知道吗


Tags: 数据testimportreignoredecodexbaxda
2条回答

你也可以抛弃前男友。你知道吗

newStr = ''
for index, char in enumerate(tmpStr):
  if char == '\\' and tmpStr[index+1] != 'n': 
    newStr += ''
  else:
    newStr += tmpStr[index]
print(newStr)

可以通过在\之后排除n来实现。你知道吗

b = re.sub(r'\\(?!n)', '', tmpStr)

结果是:

{"a":1,"b":"test","c":"黒黑\n123"}

还可以使用|管道符号来使用字符集合。在下面的\n\x被忽略。你知道吗

b = re.sub(r'\\(?!n|x)', '', tmpStr)

附录

(?!     look ahead operator

相关问题 更多 >

    热门问题