從 Python 字串中刪除非字母數字字元

Shivam Arora 2023年1月30日 2021年7月13日
  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