unipre范围的语法不会达到您的期望。
原始
r''
字符串可防止对u
转义进行解析,而正则表达式引擎将不执行此操作。此集合中的唯一范围是[0-]
:>>> re.compile(r'[u0020-u00d7ff]', re.DEBUG)
in
literal 117
literal 48
literal 48
literal 50
range (48, 117)
literal 48
literal 48
literal 100
literal 55
literal 102
literal 102将其设置为Unipre文字会导致
u
解析,同时不留其他反斜杠(尽管此处不必担心),但是前导零将其弄乱了。语法是uxxxx
或Uxxxxxxxx
,所以它解析为“ ,”。u00d7``f``f
>>> re.compile(ur'[u0020-u00d7ff]', re.DEBUG)
in
range (32, 215)
literal 102
literal 102删除前导零或切换到
U0000d7ff
可以修复它:>>> re.compile(ur'[u0020-ud7ff]', re.DEBUG)
in
range (32, 55295)



