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学习笔记(一)元组,序列,字典
随机推荐
- 细谈WEB标准
最近有些朋友很是疑惑web标准是什么,我在这里先做一个总结,有更好的见解的可以私信给我! 首先切入正题之前先谈一下什么叫DOCTYPE,DOCTYPE是document type(文档类型)的简写,主 ...
- ASP.NET SignalR 与 LayIM2.0 配合轻松实现Web聊天室(七) 之 历史记录查询(时间,关键字,图片,文件),关键字高亮显示。
前言 上一篇讲解了如何自定义右键菜单,都是前端的内容,本篇内容就一个:查询.聊天历史纪录查询,在之前介绍查找好友的那篇博客里已经提到过 Elasticsearch,今天它又要上场了.对于Elastic ...
- 直接放个DB2 SQL STATEMENT大全好了!
SQL statements This topic contains tables that list the SQL statements classified by type. SQL sch ...
- 恶趣味小游戏 I'm hungry
之前学算法的时候无聊做了个游戏放松放松,现在传到了github以免电脑坏了就永远丢失了... github地址:https://github.com/BenDanChen/IamHungry I am ...
- 【131202】SQL
SELECT TOP 2 * FROM Persons SELECT *FROM PersonsWHERE ROWNUM <= 5 SELECT * FROM Persons WHERE C ...
- android 面试题
一,什么是OOM (1)先从定义开始:Android(Java)中常见的容易引起内存泄漏的不良代码Android主要应用在嵌入式设备当中,而嵌入式设备由于一些众所周知的条件限制,通常都不会有很高的配置 ...
- JS判断输入值是否为正整数
JS中的test是原来是JS中检测字符串中是否存在的一种模式,JS输入值是否为判断正整数代码: <script type=”text/javascript”> function test( ...
- hdu 4412 2012杭州赛区网络赛 期望
虽然dp方程很好写,就是这个期望不知道怎么求,昨晚的BC也是 题目问题抽象之后为:在一个x坐标轴上有N个点,每个点上有一个概率值,可以修M个工作站, 求怎样安排这M个工作站的位置,使得这N个点都走到工 ...
- UI背景构建
个中原因不是很明白 <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android=& ...
- MySQL数据库在WINDOWS系统CMD下的编码问题
MySQL数据库在WINDOWS系统CMD下的编码问题 1. 查看MySQL数据库编码 * SHOW VARIABLES LIKE 'char%'; 2. 编码解释 * character_set_c ...