[英]How can I convert a unicode string into string literals in Python 2.7?
[英]How to convert a string representation of unicode literals from a file, into real unicode literals using python 3?
我得到了一个带有纯文本和一些Unicode文字表示形式的文件,例如
STRING_LITERAL2 = '"' ( ([^\x22\x5C\xA\xD]) | '\' [tbnrf\"'] )* '"'
我需要将这些表示形式解释为真实的文字,并在正则表达式中使用它们。 问题是,如果我简单地阅读它们,就会明白
str_lit2 = ('\'"\' ( ([^\\x22\\x5C\\xA\\xD]) | \'\\\' [tbnrf\\"\'] )* \'"\''
python的import.re
包无法解释这些文字。
我可以使用re.sub("\\\\\\\\x",...)
找到特定的表示形式re.sub("\\\\\\\\x",...)
但是如果要替换它们,可以使用re.sub("\\\\\\\\x","\\\\x".encode().decode('unicode_escape'), str_lit2)
-说这些是真实的文字-我收到以下错误:
UnicodeDecodeError: 'unicodeescape' codec can't decode bytes in position 0-1: truncated \xXX escape
那么如何将Unicode文字的这些字符串表示形式转换为真实的文字呢? 当然仅适用于python3,因为我需要使用它。
梅尔达莫斯的问候
您包含的所有十六进制字符全部落入US_ASCII平面,因为它们均未设置最高有效位。 例如, \\x22
等效于Unicode / ASCII引号"
。类似地, \\5c
等效于Unicode / ASCII \\
。
如果您没有进一步的说明,我认为您正在过度引用正常的ASCII码点。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.