2

私はこのコードブロックを使用しています:

>>> import re
>>> def titlecase(s):
...     return re.sub(r"[A-Za-z]+('[A-Za-z]+)?",
...                   lambda mo: mo.group(0)[0].upper() +
...                              mo.group(0)[1:].lower(),
...                   s)
...
>>> titlecase("they're bill's friends.")
"They're Bill's Friends."

これはPythonのドキュメントからのものです。

文字列に「ö」のようなトルコ文字が含まれている場合、文字列は次のようになります。

「BöRek」。すべての言語をサポートするには、何を書く必要がありますか?

4

2 に答える 2

2

flags=re.UNICODE正規表現を次のようにコンパイルして、Unicode文字プロパティデータベースを使用します。

def titlecase(s):
    return re.sub(re.compile(r"[\w]+('[\w]+)?", flags=re.UNICODE),
                  lambda mo: mo.group(0)[0].upper() +
                             mo.group(0)[1:].lower(),
                  s)

Python 2では、Unicode文字列を使用する必要があります。

>>> print titlecase(u"börek")
Börek
于 2012-12-03T10:28:06.747 に答える
1

Unicode文字列を使用しますtitlecase(u'börek')

于 2012-12-03T10:23:55.623 に答える