Python版的PHP stripslashes

13 投票
6 回答
8954 浏览
提问于 2025-04-10 23:42

我写了一段代码,用来把PHP中的striplashes函数转换成有效的Python反斜杠转义:

cleaned = stringwithslashes
cleaned = cleaned.replace('\\n', '\n')
cleaned = cleaned.replace('\\r', '\n')
cleaned = cleaned.replace('\\', '')

我该怎么简化这段代码呢?

6 个回答

1

使用 decode('string_escape')

cleaned = stringwithslashes.decode('string_escape')

使用

string_escape : 生成一个适合在Python源代码中作为字符串字面量的字符串

或者像Wilson的回答那样,使用replace()进行连接。

cleaned = stringwithslashes.replace("\\","").replace("\\n","\n").replace("\\r","\n")
3

听起来你想要的可以通过正则表达式来比较高效地处理:

import re
def stripslashes(s):
    r = re.sub(r"\\(n|r)", "\n", s)
    r = re.sub(r"\\", "", r)
    return r
cleaned = stripslashes(stringwithslashes)
13

我不太确定这是不是你想要的,不过……

cleaned = stringwithslashes.decode('string_escape')

撰写回答