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’
运行截图如下:
Q1

  • 18
    点赞
  • 75
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值