ホームページ >バックエンド開発 >Python チュートリアル >Python の文字列から英数字以外の文字を効率的に削除するにはどうすればよいですか?

Python の文字列から英数字以外の文字を効率的に削除するにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-11-05 22:20:02905ブラウズ

How Can I Efficiently Remove Non-Alphanumeric Characters from Strings in Python?

Python の文字列から英数字以外の文字を削除する

文字列から英数字以外の文字を削除するには、文字、数字、文字以外の文字を削除する必要があります。アンダースコア。 PHP 用のソリューションは存在しますが、Python の原則に沿っていない可能性があります。

効率的な方法の 1 つは、英数字以外の文字 (W_) に一致する正規表現を定義し、それを空の文字列に置き換えることです。 re.sub() 関数をコンパイル済み正規表現パターンとともに使用します。

<code class="python">import re, string
pattern = re.compile('[\W_]+')  # Compiled regular expression
string.printable = string.printable.replace(pattern, '')  # Substitute non-alphanumeric characters with empty string</code>

その他の方法には、リスト内包表記を使用して英数字以外の文字をフィルターで除外する方法や、filter( 内で str.isalnum() メソッドを使用する方法などがあります。 ):

<code class="python">''.join(ch for ch in string if ch.isalnum())
filter(str.isalnum, string)</code>

比較ベンチマークにより、コンパイルされた正規表現を使用した re.sub() アプローチが最高のパフォーマンスをもたらすことがわかりました:

$ python -m timeit -s \
    "import re, string; pattern = re.compile('[\W_]+')" \
    "pattern.sub('', string.printable)"
100000 loops, best of 3: 11.2 usec per loop

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

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