0

英語のアルファベット以外の文字を置き換えるにはどうすればよいですか?

たとえば、「abcdükl*m」を「 」に置き換えると、「abcd kl m」になります。

4

4 に答える 4

6

正規表現を使用します[^a-zA-Z]:

re.sub(r'[^a-zA-Z]', '', mystring)

いくつかの情報: は、a-zA-Zすべての小文字と大文字をそれぞれ示す文字範囲で^あり、文字クラスの先頭にあるキャレットは、「これら以外のすべて」などの否定を示します。

于 2012-10-25T01:17:28.283 に答える
2

テキストを正規化しようとしていると仮定して、「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以外の文字を取り除こうとしている場合は、他の人が言及した否定された文字セットの正規表現がその方法です。

于 2012-10-25T01:21:57.080 に答える
1

「 」を検索し[^a-zA-Z]て置換

于 2012-10-25T01:16:38.983 に答える
1
>>> import string
>>> print ''.join(x if x in string.ascii_letters else ' ' for x in u'abcdükl*m') 
abcd kl m
于 2012-10-25T01:23:01.303 に答える