11

Python 3.3 ではcasefoldstr 型にメソッドが追加されていますが、2.x では何もありません。これを回避する最善の方法は何ですか?

4

3 に答える 3

4

py2casefoldをチェックしてください。

>>> from py2casefold import casefold
>>> print casefold(u"tschüß")
tschüss
>>> casefold(u"ΣίσυφοςfiÆ") == casefold(u"ΣΊΣΥΦΟσFIæ") == u"σίσυφοσfiæ"
True
于 2015-09-28T21:23:08.587 に答える
2

いくつかの問題をカバーするスレッドがここにあります (ただし、すべてを解決するとは限りません)。必要なものに適しているかどうかを判断できます。これがうまくいかない場合は、W3C サイトで大文字と小文字の折り畳みを実装するための便利なヒントがいくつかあります

于 2013-08-16T13:18:07.650 に答える
1

PyICUが既にインストールされている場合。を定義するために使用できますcasefold()@Russ' answer と同じ文字列の例を使用します。

>>> import icu
>>> casefold = lambda u: unicode(icu.UnicodeString(u).foldCase())
>>> print casefold(u"tschüß")
tschüss
>>> casefold(u"ΣίσυφοςfiÆ") == casefold(u"ΣΊΣΥΦΟσFIæ") == u"σίσυφοσfiæ"
True
>>> icu.UNICODE_VERSION
'6.3'
>>> import unicodedata
>>> unicodedata.unidata_version
'5.2.0'

結果は、Unicode 標準のバージョンによって異なる場合があります

于 2015-09-29T08:10:22.037 に答える