python替换所有标点符号 正则_python用正则表达式替换掉汉字、标点等指定字符以外的特殊字符...

用习惯java的正则表达式,今天在python里也想用相同的正则处理一些文本,结果发现python和java的差别还挺大的,网上一顿搜索之后发现内容又是千篇一律,也满足不了我的需求,于是自己摸索后,总结python区别于java的几点注意事项:

目标:替换掉 汉字、英文、数字、常用中文标点符号 以外的其他字符

java实现:

724_226_d20.jpg

python实现:

725_dbb_1be.jpg

注意:

(1)python里正则表达式的写法与java相同,但是一定要在前面加”ur“,u的意思是表明后面有Unicode字符,这里汉字的范围为”\u4e00-\u9fa5“,这个是用Unicode表示的,所以前面必须要加”u“;字符”r“的意思是表示忽略后面的转义字符,这样简化了后面正则表达式里每遇到一个转义字符还得挨个转义的麻烦

(2)python里替换是用sub(”要替换为的字符“,”原始字符串“)函数,而不是replaceAll(”正则表达式“,”要替换为的字符“)

(3)这也是我栽了个大跟头的坑......编码问题!由于我是读的utf-8文件,python也指定的utf-8编码,不管怎么替换总会发现有乱码,原因是我的正则表达式是Unicode的(因为前面加了u,而且里面汉字使用Unicode表示的),而读进来的字符串是utf-8格式的,结果就是所有英文字符可以替换成功,而汉字就开始出现乱码了,解决方法是decode(‘utf-8’)把读进来的字符串转换成Unicode就可以了。

java转写python真是各种别扭哇~~~写下来省的以后忘了~

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值