从 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