「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > スペースとピリオドを保持したまま非 ASCII 文字を選択的に削除するにはどうすればよいですか?

スペースとピリオドを保持したまま非 ASCII 文字を選択的に削除するにはどうすればよいですか?

2024 年 11 月 1 日に公開
ブラウズ:810

How to Selectively Remove Non-ASCII Characters Preserving Spaces and Periods?

非 ASCII 文字の選択的削除

テキスト データを扱う場合、多くの場合、特定の記号を保持しながら非 ASCII 文字を削除する必要があります。スペースやピリオドなど。基本的なフィルタリング方法ではすべての非 ASCII 文字を削除できますが、これは場合によっては望ましくない場合があります。

次のコードを考えてみましょう:

def onlyascii(char):
    if ord(char)  127: return ''
    else: return char

このコードは、ASCII 値が 48 未満または 127 を超えるすべての文字を削除し、非 ASCII 文字のテキストを効果的に除去します。ただし、スペース (ASCII 32) とピリオド (ASCII 46) も削除されます。

スペースとピリオドを保持しながら非 ASCII 文字を選択的に削除するには、Python の string.printable モジュールを利用できます。

import string
printable = set(string.printable)
filtered_data = filter(lambda x: x in printable, data)

string.printable セットには、数字、文字、記号、スペース、ピリオドなど、システム上で印刷可能なすべての文字が含まれます。このセットをフィルタとして使用すると、文字列からすべての印刷不可能な文字を削除できます。

たとえば、文字列「some\x00string. with\x15 Funnycharacters」があるとします。

s = "some\x00string. with\x15 funny characters"
''.join(filter(lambda x: x in printable, s))

結果は次のようになります:

'somestring. with funny characters'

このメソッドは、スペースとピリオドを保持しながら非 ASCII 文字を効果的に削除し、その後の処理にクリーンな文字列を提供します。

リリースステートメント この記事は次の場所に転載されています: 1729341017 権利侵害がある場合は、[email protected] に連絡して削除してください。
最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3