为了账号安全,请及时绑定邮箱和手机立即绑定

Python实用技法第29篇:用正则表达式处理Unicode字符

标签:
Python

1、需求🙀

我们正在使用正则表达式处理文本,但是需要考虑处理Unicode字符。

2、解决方案😸

默认情况下re模块已经对某些Unicode字符类型有了基本的认识。例如,d已经可以匹配任意Unicode数字字符了:

import re
num=re.compile('\d+')

str1='123'
str2='\u0661\u0662\u0663'

print(num.match(str1))
print(num.match(str2))

结果:

<re.Match object; span=(0, 3), match='123'>
<re.Match object; span=(0, 3), match='١٢٣'>

如果需要在模式字符串中包含指定的Unicode字符,可以针对Unicode字符使用转义序列(例如uFFFF或UFFFFFFF)。比如,这里有一个正则表达式在多个不同的阿拉伯代码页中匹配所有的字符:

re.compile('[\u0600-\u06ff\u0750-\u077f\u08a0-\u08ff]+')
Python资源分享qun 784758214 ,内有安装包,PDF,学习视频,这里是Python学习者的聚集地,零基础,进阶,都欢迎

当执行匹配和搜索操作时,一个好主意是首先将所有的文本都统一表示为标准模式(见上一节)。但是,同样重要的是需要注意一些特殊情况,例如,当不区分大小写的匹配和大写转换匹配联合起来时。

3、分析😈

把Unicode和正则表达式混在一起使用绝对能让人头疼欲裂,如果真的要这么做,应该考虑安装第三方的正则表达式库

这些第三方库针对Unicode大写转换提供了完整的支持,还包括其他各种有趣的特性,包括近似匹配。

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消