Python で非 ASCII 文字をスペースに置換する
Python で非 ASCII 文字をスペースに置換するタスクは簡単に思えるかもしれませんが、文字操作によく使用される組み込み関数は、簡単な解決策をすぐに提供しない場合があります。この目標を効果的に達成するための課題と代替アプローチを検討してみましょう。
現在のソリューション
質問には 2 つの既存のアプローチが示されています:
単一スペース交換
質問は特にすべてを交換することを求めています単一のスペースを含む非 ASCII 文字。これを実現するには、remove_non_ascii_1() 関数を変更する必要があります。
<code class="python">def remove_non_ascii_1(text): return ''.join([i if ord(i) < 128 else ' ' for i in text])</code>
この更新された関数では、条件式を使用して非 ASCII 文字を単一のスペースに置き換えます。次に、''.join() 式は、変更された文字を 1 つの文字列に連結します。
正規表現によるアプローチ
remove_non_ascii_2() シングルスペース用に調整することもできますreplace:
<code class="python">re.sub(r'[^\x00-\x7F]+', ' ', text)</code>
注: これらの関数は Unicode 文字列を操作します。バイト文字列を扱う場合は、最初に Unicode 文字をデコードする必要があります (たとえば、unicode(text, 'utf-8') として)。
以上がPython で非 ASCII 文字をスペースに置き換える方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。