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

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

Susan Sarandon
Susan Sarandonオリジナル
2024-11-01 14:11:02878ブラウズ

How to Replace Non-ASCII Characters with a Single Space in Python?

非 ASCII 文字を 1 つのスペースに置き換える

Python では、非 ASCII 文字をスペースに置き換えるのは簡単な作業ではありません。非 ASCII 文字を削除するためのソリューションは多数ありますが、置換は依然として一般的な要件ではありません。

提供されている関数、remove_non_ascii_1 は、すべての非 ASCII 文字を効果的に削除します。一方、remove_non_ascii_2 は非 ASCII 文字をスペースに置き換えますが、スペースの数は文字のコード ポイント サイズに対応します。

ここで、中心的な質問に答えましょう:

すべての非 ASCII 文字を 1 つのスペースに置き換えるにはどうすればよいですか?

解決策 1:

<code class="python">def replace_with_space(text):
    return ''.join([i if ord(i) < 128 else ' ' for i in text])</code>

このアプローチでは、 ''.join() のリスト内包。 ASCII 値が 128 未満の文字は変更されませんが、非 ASCII 値はスペースに置き換えられます。

解決策 2:

<code class="python">import re

def replace_with_space(text):
    return re.sub(r'[^\x00-\x7F]+', ' ', text)</code>

この解決策では、文字はスペースに置き換えられます。正規表現で、連続する非 ASCII 文字が単一のスペースに置き換えられるようにします。これにより、remove_non_ascii_2 で複数のスペースが挿入される問題が解消されます。

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

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