擅长:python、mysql、java
<p>这就是(我认为)您要实现的目标(为了清晰起见,我简化了regexp):</p>
<pre><code>#coding=utf8
import re
content = u"Бланк XYZ свидетельства о ???допуске."
content = re.sub(u"(?iu)[^а-яё]", ".", content)
print content.encode('utf8') # Бланк.....свидетельства.о....допуске.
</code></pre>
<p>注意要点:</p>
<ul>
<li>主题是unicode</li>
<li>表达式是unicode</li>
<li>表达式使用unicode标志<code>(?u)</code>来进行大小写折叠。在</li>
</ul>
<p>另外,对于严肃的unicode工作,我建议使用<a href="https://pypi.python.org/pypi/regex/" rel="noreferrer">regex</a>模块,它提供了极好的几乎完全的unicode支持。考虑:</p>
^{2}$
<p>虽然<code>re.UNICODE</code>只改变<code>\w</code>和朋友,但在我的测试中,它也会影响大小写折叠(<code>re.IGNORECASE</code>):</p>
<pre><code>Python 2.7.2+ (default, Oct 4 2011, 20:06:09)
[GCC 4.6.1] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import re
>>> src = u'Σσ Φφ Γγ'
>>> src
u'\u03a3\u03c3 \u03a6\u03c6 \u0393\u03b3'
>>> re.sub(ur'(?i)[α-ώ]', '-', src)
u'\u03a3- \u03a6- \u0393-'
>>> re.sub(ur'(?iu)[α-ώ]', '-', src)
u' '
</code></pre>
<p>所以这要么是一个未记录的特性,要么是文档问题。在</p>