有Python中的编解码器,将逃避一切,这是不是在48-57或65-122 ASCII范围(即非字母数字)编码的Python为*仅*字母数字
唯一异常将是一个斜杠和反斜杠字符。
理想情况下,我会想的东西转换是这样的:
/MyString/My#^/Blah/
要这样:
/MyString/My\x23\x5e/Blah/
我知道有一个字符串逃逸的编码,这有类似的功能,但我需要一个自定义的要编码的字符范围。我正在寻找聪明的建议或模块,可以有效地做到这一点。
谢谢!
有Python中的编解码器,将逃避一切,这是不是在48-57或65-122 ASCII范围(即非字母数字)编码的Python为*仅*字母数字
唯一异常将是一个斜杠和反斜杠字符。
理想情况下,我会想的东西转换是这样的:
/MyString/My#^/Blah/
要这样:
/MyString/My\x23\x5e/Blah/
我知道有一个字符串逃逸的编码,这有类似的功能,但我需要一个自定义的要编码的字符范围。我正在寻找聪明的建议或模块,可以有效地做到这一点。
谢谢!
可以使用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/
我还没有看过这个,但首先想到的是字符串类翻译功能。
http://docs.python.org/library/string.html#string.translate
如果你正确地整理了一下编码字符串(即写一个脚本这样做)的翻译应该做的工作。 希望有所帮助。
第一件事情就是来到我的脑海过,但后来考虑这个问题,这将是一个巨大的痛苦写的转换表“的所有字符除了...“ – 2012-07-06 06:05:22
谢谢!我认为这应该可以做到。 – chaimp 2012-07-06 06:54:04