【Python】笔记6:字符串中去除特殊字符

字符串中去除空格

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)           # 结果:'你好哈哈'

常用字符unicode的编码范围

数字:\u0030-\u0039
汉字:\u4e00-\u9fa5
大写字母:\u0041-\u005a
小写字母:\u0061-\u007a
英文字母:\u0041-\u007a

你可能感兴趣的:(Python,python,笔记)