《Python Cookbook 3rd》笔记(2.10):在正则式中使用 Unicode
在正则式中使用 Unicode
问题
你正在使用正则表达式处理文本,但是关注的是 Unicode 字符处理。
解法
默认情况下 re 模块已经对一些 Unicode 字符类有了基本的支持。比如, \d 已经匹配任意的 unicode 数字字符了:
>>> import re
>>> num = re.compile('\d+')
>>> # ASCII digits
>>> num.match('123')
<_sre.SRE_Match object at 0x1007d9ed0>
>>> # Arabic digits
>>> num.match('\u0661\u0662\u0663')
<_sre.SRE_Match object at 0x101234030>
>>>
如果你想在模式中包含指定的 Unicode 字符,你可以使用 Unicode 字符对应的转义序列 (比如 nuFFF 或者 nUFFFFFFF )。比如,下面是一个匹配几个不同阿拉伯编码页面中所有字符的正则表达式:
>>> arabic = re.compile('[\u0600-\u06ff\u0750-\u077f\u08a0-\u08ff]+')
>>>
当执行匹配和搜索操作的时候,最好是先标准化并且清理所有文本为标准化格式。但是同样也应该注意一些特殊情况,比如在忽略大小写匹配和大小写转换时的行为。
>>> pat = re.compile('stra\u00dfe', re.IGNORECASE)
>>> s = 'straße'
>>> pat.match(s) # Matches
<_sre.SRE_Match object at 0x10069d370>
>>> pat.match(s.upper()) # Doesn't match
>>> s.upper() # Case folds
'STRASSE'
>>>
讨论
混合使用 Unicode 和正则表达式通常会让你抓狂。如果你真的打算这样做的话,最好考虑下安装第三方正则式库,它们会为 Unicode 的大小写转换和其他大量有趣特性提供全面的支持,包括模糊匹配。
《Python Cookbook 3rd》笔记(2.10):在正则式中使用 Unicode相关推荐
- 《Python Cookbook 3rd》笔记汇总
文章目录 一.数据结构 二.字符串和文本 三.数字.日期和时间 四.迭代器与生成器 五.文件与IO 一.数据结构 标题 关键词 1.1:拆分序列后赋值给多个变量 可迭代对象.拆分赋值 1.2:拆分任意 ...
- 《Python cookbook》笔记二
<Python cookbook>笔记二 第二章 字符串和文本 -使用多个界定符分割字符串- 你需要将一个字符串分割为多个字段,但是分隔符 (还有周围的空格) 并不是固定 的. # str ...
- Machine Learning with Python Cookbook 学习笔记 第9章
Chapter 9. Dimensionality Reduction Using Feature Extraction 前言 本笔记是针对人工智能典型算法的课程中Machine Learning w ...
- 《Python Cookbook 3rd》笔记(1.4):查找最大或最小的N个元素
<Python Cookbook 3rd>1.4:查找最大或最小的N个元素 问题 怎样从一个集合中获得最大或者最小的N个元素列表? 解法 heapq 模块有两个函数:nlargest()和 ...
- Python Cookbook 3rd Edition Documentation
Python Cookbook 3rd Edition Documentation 文章目录 第一章:数据结构和算法 1.1 解压序列赋值给多个变量 问题 解决方案 讨论 1.2 解压可迭代对象赋值给 ...
- Machine Learning with Python Cookbook 学习笔记 第8章
Chapter 8. Handling Images 前言 本笔记是针对人工智能典型算法的课程中Machine Learning with Python Cookbook的学习笔记 学习的实战代码都放 ...
- 北理工嵩天Python语言程序设计笔记(10 Python计算生态概览)
前言 本文是对<北理工 嵩天/黄天宇/礼欣 Python语言程序设计>的学习笔记,供自己查阅使用. 文章目录 北理工嵩天Python语言程序设计笔记(目录) 北理工嵩天Python语言程序 ...
- Machine Learning with Python Cookbook 学习笔记 第6章
Chapter 6. Handling Text 本笔记是针对人工智能典型算法的课程中Machine Learning with Python Cookbook的学习笔记 学习的实战代码都放在代码压缩 ...
- 《Python Cookbook 3rd》笔记(2.4):字符串匹配和搜索
字符串匹配和搜索 问题 你想匹配或者搜索特定模式的文本 解法 如果你想匹配的是字面字符串,那么你通常只需要调用基本字符串方法就行,比如 str.find() , str.endswith() , st ...
最新文章
- 查看Eclipse版本
- python获取按键状态_谁在用 python 弹奏一曲菊花台
- 使用Charles抓包
- Sublime Text3 配置设置攻略
- Linux 基础I/O :文件描述符,重定向,文件系统,软链接和硬链接,动态库和静态库
- 云南计算机一级没有开考吗,2020年3月云南计算机一级考试时间
- 想要设计自己的微服务?看这篇文章就对了 1
- Java 多线程 —— AQS 详解
- php如何上传txt文件,并且读取txt文件
- opencv+Dlib python大眼代码
- [swift 进阶]读书笔记-第八章:错误处理 C8P3 带有类型的错误
- ai一个线段多个箭头_「平面设计」Illustrator(AI)基础教学-第2章 绘制简单的图形...
- 下载 一寸照片编辑器
- 六维空间等IPV6资源上不去的一种解决方法
- 免费又好用怎么把文字转换成语音呢?分享我常用的3个配音神器
- 我的appstore新游戏--LeBallon 拿码了
- sm缩写代表什么意思_在嘉庚,这些缩写都是SM意思???
- 戏人看戏--什么是Web3.0?区块链又是什么?如何写一个web3.0的界面?
- c语言笔试程序改错题,C语言笔试--程序改错题.doc
- 【RL系列】Multi-Armed Bandit问题笔记
热门文章
- 月头月尾oracle取数,Oracle分析函数Over()的使用
- python2卸载后yum不可用_centos7误删除python2导致的python和yum不可用处理-阿里云开发者社区...
- arcgis缓冲后在envi中聚类出错
- SharePoint学习札记[6] — WebPart之基础
- java 延迟实例化_延迟初始化Spring Bean的几种方式
- 【微软官方文档】Windows终端(Windows Terminal)
- 第一次尝试修复Hbase2出现Region不一致,HBCK2
- REVERSE-PRACTICE-BUUCTF-5
- 【爱心代码大全】——情人节表白代码送给她属于我们程序员的浪漫
- 【机器学习】 - 各种人脸数据集下载地址及说明汇总