fnmatch translate正在逃避unicode角色

时间:2012-10-05 22:15:02

标签: python unicode

我正在使用以下代码

str = fnmatch.translate(u'ö')
print str

但它打印为

'\ö'

我有什么遗失的吗?

1 个答案:

答案 0 :(得分:2)

fnmatch.translate的目的是将shell模式转换为正则表达式。在非ascii字符前面添加反斜杠可能不尽可能简洁,但它仍然可以正常用作正则表达式:

In [25]: re.match('\ö', u'ö')
Out[25]: <_sre.SRE_Match object at 0x92fef38>

反斜杠只有在某些字符之前(例如数字AbBd,......时才有特殊含义。)如果它先于其他字符,例如'ö',反斜杠将被忽略。