Python 如何从字符串中删除所有特殊字符、标点符号和空格
在本文中,我们将找出如何在Python中从字符串中删除所有特殊字符、标点符号和空格。
第一种方法是使用isalnum()方法,通过使用for循环迭代字符串中的每个字符。我们将检查每个字符是否是字母或数字,如果不是,则将其删除,否则我们将继续下一个字符。
如果字符串中的每个字符都是字母数字字符,则isalnum()方法返回True(字母或数字)。如果不是,则返回False。
示例
在下面的示例中,我们输入一个字符串,使用isalnum()和for循环删除空格和特殊字符,并打印结果字符串。
str1 = "Welcome #@ !! to Tutorialspoint123"
print("The given string is")
print(str1)
print("Removing special characters and white spaces")
print(''.join(i for i in str1 if i.isalnum()))
输出
上面示例的输出如下所示:
The given string is
Welcome #@ !! to Tutorialspoint123
Removing special characters and white spaces
WelcometoTutorialspoint123
使用filter()和isalnum()方法
第二种方法是使用 filter() 和 isalnum() 。这种方法类似于第一种方法,但是我们不是使用for循环和if语句,而是使用filter()函数来检查给定字符是否是字母或数字。
示例
在下面的示例中,我们输入一个字符串,并使用filter()和isalnum()函数去除所有的空格和特殊字符,然后打印结果字符串。
str1 = "Welcome #@ !! to Tutorialspoint123"
print("The given string is")
print(str1)
print("Removing special characters and white spaces")
print(''.join(filter(str.isalnum, str1)))
输出
上述示例的输出如下所示−
The given string is
Welcome #@ !! to Tutorialspoint123
Removing special characters and white spaces
WelcometoTutorialspoint123
使用正则表达式
正则表达式被用在第二种技术中。导入re库并安装(如果尚未安装)以使用它。在导入re库之后,我们可以使用正则表达式 ” [A-Za-z0-9]+ “。使用re.sub技术,特殊字符和空白将被替换为空格。
示例
在下面给出的示例中,我们将一个字符串作为输入,并使用正则表达式删除所有特殊字符和空白,并打印结果字符串 -
import re
str1 = "Welcome #@ !! to Tutorialspoint123"
print("The given string is")
print(str1)
print("Removing special characters and white spaces")
print(re.sub('[^A-Za-z0-9]+', '', str1))
输出
上述示例的输出如下所示 –
The given string is
Welcome #@ !! to Tutorialspoint123
Removing special characters and white spaces
WelcometoTutorialspoint123