從 Python 字串中刪除非字母數字字元
Shivam Arora
2023年1月30日
2021年7月13日
-
使用
isalnum()
方法刪除 Python 字串中的所有非字母數字字元 -
使用
filter()
函式刪除 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