英語のアルファベット以外の文字を置き換えるにはどうすればよいですか?
たとえば、「abcdükl*m」を「 」に置き換えると、「abcd kl m」になります。
正規表現を使用します[^a-zA-Z]
:
re.sub(r'[^a-zA-Z]', '', mystring)
いくつかの情報: は、a-zA-Z
すべての小文字と大文字をそれぞれ示す文字範囲で^
あり、文字クラスの先頭にあるキャレットは、「これら以外のすべて」などの否定を示します。
テキストを正規化しようとしていると仮定して、「HTML 用の非 Unicode および非 ASCII 用の Python の包括的な文字置換モジュール」の下にある私のリンクを参照してください。
unicodedata
テキストを適切に劣化させるnormalize
メソッドがあります。
import unicodedata
def gracefully_degrade_to_ascii( text ):
return unicodedata.normalize('NFKD',text).encode('ascii','ignore')
完全なドキュメント - http://docs.python.org/library/unicodedata.html
ASCII以外の文字を取り除こうとしている場合は、他の人が言及した否定された文字セットの正規表現がその方法です。
「 」を検索し[^a-zA-Z]
て置換
>>> import string
>>> print ''.join(x if x in string.ascii_letters else ' ' for x in u'abcdükl*m')
abcd kl m