我使用分词器将法语句子分割成单词,但在包含法语字符â
的单词上遇到了问题。
我试图找出问题所在,最终发现问题归结为这个简单事实:
>>> re.match(r"’", u'â', re.U)
>>> re.match(r"[’]", u'â', re.U)
<_sre.SRE_Match object at 0x21d41d0>
如果将â
放入集合匹配器中并匹配含有’
的模式,则会进行匹配。
关于UTF-8处理,我是否存在问题还是这是一个bug?
我的python版本是:
Python 2.7.3 (default, Jan 2 2013, 13:56:14)
[GCC 4.7.2] on linux2
编辑:
尴尬的是,用u
替换模式前缀中的r
似乎可以解决问题。
我想知道为什么官方文档广泛使用r
然后:((
r
是正确且重要的。您应该在不替换r
的情况下添加u
(请参见答案)。 - Martin Enderr
和u
的作用,确实两者都很重要。谢谢 :) - m09