ホームページ  >  記事  >  バックエンド開発  >  Python で非 ASCII 文字をスペースに置き換える方法

Python で非 ASCII 文字をスペースに置き換える方法

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-11-01 16:34:02386ブラウズ

How to Replace Non-ASCII Characters with Spaces in Python?

Python で非 ASCII 文字をスペースに置換する

Python で非 ASCII 文字をスペースに置換するタスクは簡単に思えるかもしれませんが、文字操作によく使用される組み込み関数は、簡単な解決策をすぐに提供しない場合があります。この目標を効果的に達成するための課題と代替アプローチを検討してみましょう。

現在のソリューション

質問には 2 つの既存のアプローチが示されています:

  • remove_non_ascii_1() はすべての非 ASCII を削除します文字。
  • remove_non_ascii_2() は、コード ポイントが大きい文字には複数のスペースを使用して、非 ASCII 文字をスペースに置き換えます。

単一スペース交換

質問は特にすべてを交換することを求めています単一のスペースを含む非 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>
ここでは、連続する非 ASCII 文字が単一のスペースに置換されるように、角かっこ内に ' ' 修飾子が追加されています。

注: これらの関数は Unicode 文字列を操作します。バイト文字列を扱う場合は、最初に Unicode 文字をデコードする必要があります (たとえば、unicode(text, 'utf-8') として)。

以上がPython で非 ASCII 文字をスペースに置き換える方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。