python中是否有一个编解码器可以逃避不在ascii范围48-57或65-122(即不是字母数字)的所有内容
唯一的例外是斜杠和反斜杠字符。
理想情况下,我想转换这样的内容:
/MyString/My#^/Blah/
对此:
/MyString/My\x23\x5e/Blah/
我知道有一个字符串转义编码可以做类似的事情,但我需要一个自定义的字符范围来编码。我正在寻找能够有效做到这一点的聪明建议或模块。
谢谢!
答案 0 :(得分:2)
您可以将re.sub
与函数参数一起使用,如下所示:
s = "/MyString/My#^/Blah/"
import re
print re.sub(r'[^\w/\\]', lambda m: '\\x%x' % ord(m.group(0)), s)
#/MyString/My\x23\x5e/Blah/
答案 1 :(得分:0)
我没有看过这个,但首先想到的是字符串类翻译功能。
http://docs.python.org/library/string.html#string.translate
如果您正确地将编码字符串放在一起(即编写一个脚本来执行此操作),翻译应该完成这项工作。 希望有所帮助。