Python中怎么提取字符串中的汉字?

Python中怎么提取字符串中的汉字?

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)

输出为:‘齐天大圣孙悟空20160917六学家Zhang第1张jpg’
运行截图如下:
Python中怎么提取字符串中的汉字?_第1张图片

你可能感兴趣的:(Python)