从 Python 字符串中删除非字母数字字符
Shivam Arora
2023年1月30日
-
使用
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