[英]python regex: escape illegal characters only if it's not escaped already
现在,我将文件作为字符串输入,并将其格式化为json。 该文件包含我要转义的\\ r,\\ n字符,但是文件中已经存在已转义那些非法字符的json对象,例如\\\\ r和\\\\ n。 因此,现在我只想在\\ r \\ n字符前面不加\\的情况下才用\\\\ r \\\\ n替换\\ r \\ n字符
我已经在下面尝试过了..但是我不确定为什么它不起作用
re.sub(r'[^\][\n]', r'\\\\n', s)
任何建议,将不胜感激!
您可以使用RegEx这样操作:
import re
data = 'Hello\r\nWorld\\r\\n'
print(data)
print('-'*20)
data = re.sub(r'([^\\])\r', '\\1\\\\r', data)
data = re.sub(r'([^\\])\n', '\\1\\\\n', data)
print(data)
输出:
Hello
World\r\n
--------------------
Hello\r\nWorld\r\n
或者,一种稍微不同的方法是这样做:
data = 'Hello\r\nWorld\\r\\n'
print(data)
print('-'*20)
data = data.replace('\r', '\\r')
data = data.replace('\n', '\\n')
print(data)
输出:
Hello
World\r\n
--------------------
Hello\r\nWorld\r\n
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.