Python3:正则表达式
2016-04-11 10:30
567 查看
正则表达式也称为 REs
一、常用的匹配
二、反斜杠\与原始字符串
三、匹配方法
一个例子:
一、常用的匹配
\d 任意十进制数字 \s 任意空白字符(空格、换行、制表) \w 任意单词和数字 \b 单词的开始或结束 [abc$] a或b或c或$,虽然$是元字符,但是方括号里匹配其本身 * 0次或多次 + 1次或多次 ? 0次或1次 . 换行符以外的任意字符 {m} m次 {m,} m次或m次以上 {m,n} m次到n次(包含m、n次本身) ^ 开始位置 $ 结束位置 | 或
二、反斜杠\与原始字符串
Python本身处理字符串时,反斜杠用于转义字符,\\代表引用\本身;正则表达器查询\时,需要转义\本身,所以需要四个反斜杠\\\\(可以看成(\\)(\\))。也就是说,匹配\需要四个反斜杠\\\\。 反斜杠过多容易导致代码难以阅读,因为这个原因,Python在使用正则表达式最好使用原始字符串。 比如,正则字符串"\\w+\\d"改写成r"\w+\d",以此类推。
三、匹配方法
match() 判断正则表达式是否从开始处匹配一个字符串 search() 遍历字符串,找到第一个位置 findall() 遍历字符串,找到所有位置,并以列表形式返回 finditer() 遍历字符串,找到所有位置,并以迭代器形式返回 group() 返回匹配的字符串 start() 返回匹配的开始位置 end() 返回匹配的结束位置 span() 返回匹配位置
一个例子:
import re p=re.compile('\w+') p.match("") print(p.match("")) m=p.match('liangzuojiayi') print(m) print(m.group()) print(m.start()) print(m.end()) print(m.span()) print() m0=p.match('~~~liangzuojiayi')#match()是从开始处匹配 print(m0) m1=p.search('~~~liangzuojiayi') print(m1) print(m1.group()) print(m1.start()) print(m1.end()) print(m1.span()) print() q=re.compile('\d+') print(q.findall('1liang2zuo3jia4yi')) iterator=q.finditer('1liang2zuo3jia4yi') print(iterator) for match in iterator: print(match.span())
结果显示: None <_sre.SRE_Match object; span=(0, 13), match='liangzuojiayi'> liangzuojiayi 0 13 (0, 13) None <_sre.SRE_Match object; span=(3, 16), match='liangzuojiayi'> liangzuojiayi 3 16 (3, 16) ['1', '2', '3', '4'] <callable_iterator object at 0x00000000093CC2B0> (0, 1) (6, 7) (10, 11) (14, 15)
相关文章推荐
- Python-OpenCV(6)
- 一道简单的填空题
- Python的递推式构造列表(List comprehension)
- windows下python安装Numpy、Scipy、matplotlib模块
- ubuntu14.04 改变系统默认Python解释器
- python setup.py uninstall
- .pth 文件扩展python环境路径
- 初学python(对比java语言不同) 第五篇
- python监控进程
- python学习笔记(excel+unittest)
- 如何使python2.7的程序与python3.x的兼容
- 《Python数据分析基础教程:Numpy学习指南》- 速记 - 第十一章
- python flask model 序列化
- 使用python读写操作同一个excel(xlrd,xlwt,xlutils)
- python操作Excel读写--使用xlrd
- python语句
- Python内置的字符串处理函数整理
- python获得脚本的目录(非运行脚本目录)
- 【1-4】pythondb的rollback()用法
- 【1-3】pythondb增删改查