[英]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.