Python学习笔记08
正则表达式包re
match,search,sub
re.match(pattern, string, flags=0)
re.search(pattern, string, flags=0)
re.sub(pattern, repl, string, max=0)
re.split(pattern,string,maxsplit,flags=0) # 根据正则表达式分割字符串, 将分割后的所有子字符串放在一个表(list)中返回
re.findall(pattern,string,flags=0) # 根据正则表达式搜索字符串,将所有符合的子字符串放在一给表(list)中返回
re.compile(pattern,flags=0)
- import re
- line = "Cats are smarter than dogs"
- matchObj = re.match(r'(.*) are (.*?) .*',line,re.M | re.I)
- if matchObj:
- print "matchObj.group() : ", matchObj.group(0)
- print "matchObj.group(1) : ", matchObj.group(1)
- print "matchObj.group(2) : ", matchObj.group(2)
- else:
- print "No match!!"
- import datetime,re,os
- str = 'output_1981.10.21.txt'
- m = re.match(r'output_(\d{4}).(\d{2}).(\d{2}).txt',str)
- m2 = re.findall(r'(?P<year>\d{4}).(?P<month>\d{2}).(?P<day>\d{2})',str)
- m3 =re.search("(?P<year>\d{4})\.(?P<month>\d{2})\.(?P<day>\d{2})\.",str)
- print m2
- print m.group(0)+",",m.group(1)+",",m.group(2)+",",m.group(3)
- print m3.group("year")
- m2 =m2[0]
- print m2
- date = datetime.date(int(m2[0]),int(m2[1]),int(m2[2]))
- print date.weekday()
可选标识说明
|
修饰符 |
描述 |
|
re.I |
使匹配对大小写不敏感,Ignore |
|
re.L |
做本地化识别(locale-aware)匹配 |
|
re.M |
多行匹配,影响 ^ 和 $,MutilLine |
|
re.S |
使 . 匹配包括换行在内的所有字符 |
|
re.U |
根据Unicode字符集解析字符。这个标志影响 \w, \W, \b, \B.,Unicode |
|
re.X |
该标志通过给予你更灵活的格式以便你将正则表达式写得更易于理解。 |
表达式解释
|
个或多个的表达式。 |
|
|
个或多个的表达式。 |
|
|
个或1个由前面的正则表达式定义的片段,非贪婪方式 |
|
|
re{ n} |
|
|
re{ n,} |
精确匹配n个前面表达式。 |
|
re{ n, m} |
匹配 n 到 m 次由前面的正则表达式定义的片段,贪婪方式 |
|
a| b |
匹配a或b |
|
(re) |
G匹配括号内的表达式,也表示一个组 |
|
(?imx) |
正则表达式包含三种可选标志:i, m, 或 x 。只影响括号中的区域。 |
|
(?-imx) |
正则表达式关闭 i, m, 或 x 可选标志。只影响括号中的区域。 |
|
(?: re) |
类似 (...), 但是不表示一个组 |
|
(?imx: re) |
在括号中使用i, m, 或 x 可选标志 |
|
(?-imx: re) |
在括号中不使用i, m, 或 x 可选标志 |
|
(?#...) |
注释. |
|
(?= re) |
前向肯定界定符。如果所含正则表达式,以 ... 表示,在当前位置成功匹配时成功,否则失败。但一旦所含表达式已经尝试,匹配引擎根本没有提高;模式的剩余部分还要尝试界定符的右边。 |
|
(?! re) |
前向否定界定符。与肯定界定符相反;当所含表达式不能在字符串当前位置匹配时成功 |
|
(?> re) |
匹配的独立模式,省去回溯。 |
|
\w |
匹配字母数字 |
|
\W |
匹配非字母数字 |
|
\s |
匹配任意空白字符,等价于 [\t\n\r\f]. |
|
\S |
匹配任意非空字符 |
|
\d |
匹配任意数字,等价于 [0-9]. |
|
\D |
匹配任意非数字 |
|
\A |
匹配字符串开始 |
|
\Z |
匹配字符串结束,如果是存在换行,只匹配到换行前的结束字符串。c |
|
\z |
匹配字符串结束 |
|
\G |
匹配最后匹配完成的位置。 |
|
\b |
匹配一个单词边界,也就是指单词和空格间的位置。例如, 'er\b' 可以匹配"never" 中的 'er',但不能匹配 "verb" 中的 'er'。 |
|
\B |
匹配非单词边界。'er\B' 能匹配 "verb" 中的 'er',但不能匹配 "never" 中的 'er'。 |
|
\n, \t, 等. |
匹配一个换行符。匹配一个制表符。等 |
|
\1...\9 |
匹配第n个分组的子表达式。 |
|
\10 |
匹配第n个分组的子表达式,如果它经匹配。否则指的是八进制字符码的表达式。 |
Python学习笔记08的更多相关文章
- python学习笔记08:安装django
linux环境安装django: sudo pip install django windows环境安装django: pip install django 验证django是否安装: python ...
- python 学习笔记 13 -- 经常使用的时间模块之time
Python 没有包括相应日期和时间的内置类型.只是提供了3个相应的模块,能够採用多种表示管理日期和时间值: * time 模块由底层C库提供与时间相关的函数.它包括一些函数用于获取时钟时间和处 ...
- python学习笔记整理——字典
python学习笔记整理 数据结构--字典 无序的 {键:值} 对集合 用于查询的方法 len(d) Return the number of items in the dictionary d. 返 ...
- VS2013中Python学习笔记[Django Web的第一个网页]
前言 前面我简单介绍了Python的Hello World.看到有人问我搞搞Python的Web,一时兴起,就来试试看. 第一篇 VS2013中Python学习笔记[环境搭建] 简单介绍Python环 ...
- python学习笔记之module && package
个人总结: import module,module就是文件名,导入那个python文件 import package,package就是一个文件夹,导入的文件夹下有一个__init__.py的文件, ...
- python学习笔记(六)文件夹遍历,异常处理
python学习笔记(六) 文件夹遍历 1.递归遍历 import os allfile = [] def dirList(path): filelist = os.listdir(path) for ...
- python学习笔记--Django入门四 管理站点--二
接上一节 python学习笔记--Django入门四 管理站点 设置字段可选 编辑Book模块在email字段上加上blank=True,指定email字段为可选,代码如下: class Autho ...
- python学习笔记--Django入门0 安装dangjo
经过这几天的折腾,经历了Django的各种报错,翻译的内容虽然不错,但是与实际的版本有差别,会出现各种奇葩的错误.现在终于找到了解决方法:查看英文原版内容:http://djangobook.com/ ...
- python学习笔记(一)元组,序列,字典
python学习笔记(一)元组,序列,字典
随机推荐
- 宠物收养所(bzoj1208)
Description 最近,阿Q开了一间宠物收养所.收养所提供两种服务:收养被主人遗弃的宠物和让新的主人领养这些宠物.每个领养者都希望领养到自己满意的宠物,阿Q根据领养者的要求通过他自己发明的一个特 ...
- iOS 文件大小转换成 KB、MB、GB 。。。
-(NSString *) convertFileSize:(long long)size { ; ; ; if (size >= gb) { return [NSString stringWi ...
- iOS 语录
1. 输入法切换: cmd + space 2. xcode 退出全屏control + cmd + f 3. xcode 代码格式化插件Uncrustify,XAlign, CLangFormat ...
- 二、JavaScript语言--JS实践--信息滚动效果制作
运用JavaScript技术,掌握无缝滚动和歇间性滚动的制作方法. 一.marquee标签实现信息滚动 1 behavior滚动的方式 alternate:表示在两端之间来回滚动 scroll:表示由 ...
- YCbCr 编码格式(YUV)---转自Crazy Bingo的博客
YCbCr是DVD.摄像机.数字电视等消费类视频产品中,常用的色彩编码方案. YCbCr 有时会称为 YCC..Y'CbCr 在模拟分量视频(analog component video)中也常被称为 ...
- 谈谈我的编程之路---WAMP(一)
WAMP的一些配置与使用心得(PHP) 记得第一次接触PHP的时候,我都不知道PHP为什么要大写,但是我却用它来进行工作了,有时候生活就是一场美丽的邂逅 青涩的我,在ES哥的引领下,第一次接触到了WA ...
- SQL Server占用内存的认识
SQL Server占用的内存主要由三部分组成:数据缓存(Data Buffer).执行缓存(Procedure Cache).以及SQL Server引擎程序.SQL Server引擎程序所占用缓存 ...
- jQuery – 3.JQuery的Dom操作
3.1 JQuery的Dom操作 1.使用html()方法读取或者设置元素的innerHTML 2.使用text()方法读取或者设置元素的innerText 3.使用attr() ...
- C# virtual override 和 new 的区别
一直以来我都对 virtual override 和 new 之间的区别感到疑惑不解. 特别笔试的时候特别容易考到,真的很容易弄错啊,畜生! 光看理论永远记不住,那不如写几行代码就懂了. 首先看看v ...
- java读写Properties文件
Java 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 ...