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

Susan Sarandon
リリース: 2024-10-22 06:58:30
オリジナル
310 人が閲覧しました

How to Remove Non-Printable Characters from Python Strings?

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

質問:

Perl では、印刷不可能な文字は、正規表現 s/[^[:print:]]//g を使用して削除できます。ただし、Python では、[:print:] クラスはサポートされていません。 ASCII 文字と Unicode 文字の両方を処理する同様の機能を Python でどのように実現できますか?

答え:

印刷可能性の検出における Python の制限により、独自の文字を構築できます。 unicodedata モジュールを使用したクラス。

<code class="python">import unicodedata, re, itertools, sys

# Generate a list of all characters
all_chars = (chr(i) for i in range(sys.maxunicode))

# Category of control characters
categories = {'Cc'}
control_chars = ''.join(c for c in all_chars if unicodedata.category(c) in categories)

# Escape the control characters for regular expression matching
control_char_re = re.compile('[%s]' % re.escape(control_chars))

# Function to remove control characters from a string
def remove_control_chars(s):
    return control_char_re.sub('', s)</code>
ログイン後にコピー

Python 2 の場合:

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

# Generate a list of all characters
all_chars = (unichr(i) for i in xrange(sys.maxunicode))

# Category of control characters
categories = {'Cc'}
control_chars = ''.join(c for c in all_chars if unicodedata.category(c) in categories)

# Escape the control characters for regular expression matching
control_char_re = re.compile('[%s]' % re.escape(control_chars))

# Function to remove control characters from a string
def remove_control_chars(s):
    return control_char_re.sub('', s)</code>
ログイン後にコピー

拡張オプション:

の場合より包括的な削除では、追加のカテゴリを含めることができますが、パフォーマンスに影響する可能性があります。

文字カテゴリと数:

  • Cc (コントロール): 65
  • Cf (フォーマット): 161
  • Cs (サロゲート): 2048
  • Co (私用): 137468
  • Cn (未割り当て): 836601

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

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