replace 【直接将空格替换为空】
str1 = "a b c d"
newStr= str1.replace(" ","") # 结果:'abcd'
re.sub 【可使用正则表达式,直接将空格替换为空】
import re
str1 = "a b c d"
newStr = re.sub(" ","",str1) # 结果:'abcd'
split + join 【先按空格拆分成列表,再合并成字符串】
str1 = "a b c\xa0d"
newStr= "".join(str1.split()) # 结果:'abcd'
ord、dict.fromkeys、translate 【先将特殊字符\xa0转化成ASCII或unicode,再作为新字典的键,按字典键值对转化字符串】
str1= "abc\xa0d"
newStr = str1.translate(dict.fromkeys((ord(u"\xa0"),))) # 结果:'abcd'
re.findall + join 【先用正则表达式找到所有除特殊字符以外的字符列表,再合并成字符串】
import re
str1 = 'a\\b/c:d*e?f"gi|j'
a = re.findall(r'[^\\/:*?"<>|]',str1)
newStr = "".join(a) # 结果:'abcdefghij'
re.sub 【使用正则表达式,直接将特殊字符替换为空】
import re
str1 = 'a\\b/c:d*e?f"gi|j'
newStr = re.sub(r'[\\/:*?"<>|]','',str1) # 结果:'abcdefghij'
re.sub 【使用正则表达式,将除字母数字以外的字符替换为空】
import re
str1 = "hello! 123 let's go?"
newStr = re.sub(r"[^a-zA-Z0-9]","",str1) # 结果:'hello123letsgo
for + isalnum + join 【先循环出只含字母数字的列表,再合并成字符串】
str1 = "hello! 123 let's go?"
newStr= ''.join(x for x in str1 if x.isalnum()) # 结果:'hello123letsgo'
filter + str.isalnum + join 【先筛选出字母数字,再合并成字符串】
str1 = "hello! 123 let's go?"
newStr = ''.join(filter(str.isalnum, str1)) # 结果:'hello123letsgo'
re.sub 【使用正则表达式,将除汉字以外的字符替换为空】
# 字符串中去掉除汉字以外的所有字符
import re
str1 = "你好abc,哈哈123"
newStr = re.sub('([^\u4e00-\u9fa5])', '', str1) # 结果:'你好哈哈'
数字:\u0030-\u0039
汉字:\u4e00-\u9fa5
大写字母:\u0041-\u005a
小写字母:\u0061-\u007a
英文字母:\u0041-\u007a