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

Linda Hamilton
リリース: 2024-10-19 20:32:02
オリジナル
863 人が閲覧しました

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

非 ASCII 文字の選択的削除

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

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

<code class="python">def onlyascii(char):
    if ord(char) < 48 or ord(char) > 127: return ''
    else: return char</code>
ログイン後にコピー

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

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

<code class="python">import string
printable = set(string.printable)
filtered_data = filter(lambda x: x in printable, data)</code>
ログイン後にコピー

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

たとえば、文字列「somex00string.withx15 funkycharacters」がある場合:

<code class="python">s = "some\x00string. with\x15 funny characters"
''.join(filter(lambda x: x in printable, s))</code>
ログイン後にコピー

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

'somestring. with funny characters'
ログイン後にコピー

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

以上がスペースとピリオドを保持したまま非 ASCII 文字を選択的に削除するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!