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

Shivam Arora 2023年1月30日
  1. isalnum() メソッドを使用して、Python 文字列内のすべての英数字以外の文字を削除する
  2. filter() 関数を使用して、Python 文字列内のすべての英数字以外の文字を削除する
  3. 正規表現を使用して、Python 文字列内のすべての英数字以外の文字を削除する
Python 文字列から英数字以外の文字を削除する

英数字には、文字セットの 26 文字と 0〜9 の数字のブレンドが含まれます。英数字以外の文字には、+@などの文字または数字ではない文字が含まれます。

このチュートリアルでは、Python で文字列から英数字以外の文字を削除する方法について説明します。

isalnum() メソッドを使用して、Python 文字列内のすべての英数字以外の文字を削除する

isalnum() メソッドを使用して、特定の文字または文字列が英数字であるかどうかを確認できます。文字列から各文字を個別に比較できます。英数字の場合は、join() 関数を使用して結合します。

例えば、

string_value = "alphanumeric@123__"
s = "".join(ch for ch in string_value if ch.isalnum())
print(s)

出力:

alphanumeric123

filter() 関数を使用して、Python 文字列内のすべての英数字以外の文字を削除する

filter() 関数は、反復可能なオブジェクトのコンポーネントからイテレータを構築し、関数を使用してオブジェクトの要素をフィルタリングするために使用されます。

この問題では、文字列がオブジェクトであり、isalnum() 関数を使用します。この関数は、各文字をチェックすることにより、特定の文字列に英数字が含まれているかどうかをチェックします。join() 関数は、すべての文字を組み合わせて文字列を返します。

例えば、

string_value = "alphanumeric@123__"
s = "".join(filter(str.isalnum, string_value))
print(s)

出力:

alphanumeric123

このメソッドは Python 3 では機能しません。

正規表現を使用して、Python 文字列内のすべての英数字以外の文字を削除する

正規表現は、パターン内の特定の構文を利用して、さまざまな文字列または文字列のセットを照合するのに役立つ文字の例外的なグループです。正規表現を使用するには、re モジュールをインポートします。

このモジュールの sub() 関数を使用して、英数字以外の文字に一致するすべての文字列を空の文字に置き換えることができます。

例えば、

import re

string_value = "alphanumeric@123__"
s = re.sub(r"[\W_]+", "", string_value)
print(s)

出力:

alphanumeric123

または、次のパターンを使用することもできます。

import re

string_value = "alphanumeric@123__"
s = re.sub(r"[^a-zA-Z0-9]", "", string_value)
print(s)

出力:

alphanumeric123

関連記事 - Python String