0

48-57 または 65-122 の ASCII 範囲外 (つまり、英数字ではない) をすべてエスケープするコーデックが python にありますか?

唯一の例外は、スラッシュとバックスラッシュ文字です。

理想的には、次のように変換したいと思います。

/MyString/My#^/Blah/

これに:

/MyString/My\x23\x5e/Blah/

同様のことを行う文字列エスケープエンコーディングがあることは知っていますが、エンコードする文字のカスタム範囲が必要です。これを効率的に行うことができる賢い提案やモジュールを探しています。

ありがとう!

4

2 に答える 2

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/
于 2012-07-06T06:14:55.180 に答える
0

これについては調べていませんが、最初に頭に浮かんだのは文字列クラスの変換機能です。

http://docs.python.org/library/string.html#string.translate

エンコーディング文字列を正しくまとめれば (つまり、そのためのスクリプトを作成すれば)、翻訳がうまくいくはずです。それが役立つことを願っています。

于 2012-07-06T06:02:03.097 に答える