By Datawhale知乎内容输出小组D1
str1 = “{我% 是 , 《 速 是,《速 是,《速@.度\发》中 /国、人”
怎么把里面的汉字提取出来,只要汉字,替换成
str1 = “我是速度发中国人”
还有就是
str2 = “[齐天大圣/孙悟空] 2016.09.17 六学家Zhang ~ 第1张.jpg”
这个是把里面的符号都去掉。转换成这样的字符串
str2 = “齐天大圣孙悟空20160917六学家Zhang第1张.jpg”
首先我有个疑问 - str2中的符号’.'需要去掉吗?
题主给定的输出是"齐天大圣孙悟空20160917六学家Zhang第1张.jpg",包含了倒数第4个字符’.’,但是没有包含’2016.09.17’中的’.’。
这里我暂且假定正确的输出为:‘齐天大圣孙悟空20160917六学家Zhang第1张jpg’,即’.'作为字符,是需要去掉的。
采用正则表达式的方法对字符串进行处理。
str1 = "{我%$是,《速$@.度\发》中 /国、人"
str2 = "[齐天大圣/孙悟空] 2016.09.17 六学家Zhang ~ 第1张.jpg"
1)提取汉字
汉字的范围为”\u4e00-\u9fa5“,这个是用Unicode表示的
import re
res1 = ''.join(re.findall('[\u4e00-\u9fa5]',str1))
print(res1)
输出为:‘我是速度发中国人’
2)去除所有符号。采用清理数据,仅保留字母、数字、中文的方法
res2 = re.sub("[^a-zA-Z0-9\u4e00-\u9fa5]", '', str2)
print(res2)