Python で文字列から印刷不可能な文字を取り除くにはどうすればよいですか?

DDD
リリース: 2024-10-22 06:55:02
オリジナル
429 人が閲覧しました

How to Strip Non-Printable Characters from Strings in Python?

Python で文字列から印刷不可能な文字を削除する

Perl では、s/[^[:print:]]// g regex は、文字列からすべての印刷不可能な文字を効果的に削除します。ただし、Python には同等の POSIX 正規表現クラスがないため、同じタスクをどのように実行すればよいのか疑問に思う人もいます。

Unicode を理解する

課題は Unicode 文字の処理にあります。

カスタム文字クラスの構築

これに対処するには、unicodedata を使用してカスタム文字クラスを構築できます。モジュール。 unicodedata.category() 関数は、文字カテゴリに関する洞察を提供します。たとえば、Unicode 文字セットからこれらのカテゴリをフィルタリングして除外することで、制御文字やサロゲート文字などの印刷不可能な文字を表す control_characters という文字クラスを定義できます。

<code class="python">import unicodedata
import re

categories = {'Cc', 'Cf', 'Cs'}  # Include desired categories here
control_chars = ''.join(chr(i) for i in range(sys.maxunicode) if unicodedata.category(chr(i)) in categories)
control_char_re = re.compile('[%s]' % re.escape(control_chars))</code>
ログイン後にコピー

このアプローチでは、次のアプローチと比較して効率が向上します。

<code class="python">def remove_control_chars(s):
    return control_char_re.sub('', s)</code>
ログイン後にコピー

追加のカスタマイズ

追加のカテゴリ (私用文字など) のフィルタリングが必要なシナリオでは、文字クラスを拡張できます。

<code class="python">categories.add('Co')  # Add private-use characters
# Rebuild the character class and regex</code>
ログイン後にコピー

このアプローチを利用すると、Python の Unicode 文字列から印刷不可能な文字を効果的に除去でき、基本的なユースケースとカスタマイズされたユースケースの両方に対応できます。

以上がPython で文字列から印刷不可能な文字を取り除くにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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