Python学习笔记08

时间:2022-09-01 16:32:37

 

正则表达式包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)

 

  1. import re
  2.  
  3. line = "Cats are smarter than dogs"
  4. matchObj = re.match(r'(.*) are (.*?) .*',line,re.M | re.I)
  5.  
  6.  
  7. if matchObj:
  8.    print "matchObj.group() : ", matchObj.group(0)
  9.    print "matchObj.group(1) : ", matchObj.group(1)
  10.    print "matchObj.group(2) : ", matchObj.group(2)
  11. else:
  12.    print "No match!!"
  13.  
  14. import datetime,re,os
  15. str = 'output_1981.10.21.txt'
  16. m = re.match(r'output_(\d{4}).(\d{2}).(\d{2}).txt',str)
  17. m2 = re.findall(r'(?P<year>\d{4}).(?P<month>\d{2}).(?P<day>\d{2})',str)
  18. m3 =re.search("(?P<year>\d{4})\.(?P<month>\d{2})\.(?P<day>\d{2})\.",str)
  19. print m2
  20. print m.group(0)+",",m.group(1)+",",m.group(2)+",",m.group(3)
  21. print m3.group("year")
  22.  
  23. m2 =m2[0]
  24. print m2
  25. date = datetime.date(int(m2[0]),int(m2[1]),int(m2[2]))
  26. 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的更多相关文章

  1. python学习笔记08:安装django

    linux环境安装django: sudo pip install django windows环境安装django: pip install django 验证django是否安装: python ...

  2. python 学习笔记 13 -- 经常使用的时间模块之time

    Python 没有包括相应日期和时间的内置类型.只是提供了3个相应的模块,能够採用多种表示管理日期和时间值: *    time 模块由底层C库提供与时间相关的函数.它包括一些函数用于获取时钟时间和处 ...

  3. python学习笔记整理——字典

    python学习笔记整理 数据结构--字典 无序的 {键:值} 对集合 用于查询的方法 len(d) Return the number of items in the dictionary d. 返 ...

  4. VS2013中Python学习笔记&lbrack;Django Web的第一个网页&rsqb;

    前言 前面我简单介绍了Python的Hello World.看到有人问我搞搞Python的Web,一时兴起,就来试试看. 第一篇 VS2013中Python学习笔记[环境搭建] 简单介绍Python环 ...

  5. python学习笔记之module &amp&semi;&amp&semi; package

    个人总结: import module,module就是文件名,导入那个python文件 import package,package就是一个文件夹,导入的文件夹下有一个__init__.py的文件, ...

  6. python学习笔记(六)文件夹遍历,异常处理

    python学习笔记(六) 文件夹遍历 1.递归遍历 import os allfile = [] def dirList(path): filelist = os.listdir(path) for ...

  7. python学习笔记--Django入门四 管理站点--二

    接上一节  python学习笔记--Django入门四 管理站点 设置字段可选 编辑Book模块在email字段上加上blank=True,指定email字段为可选,代码如下: class Autho ...

  8. python学习笔记--Django入门0 安装dangjo

    经过这几天的折腾,经历了Django的各种报错,翻译的内容虽然不错,但是与实际的版本有差别,会出现各种奇葩的错误.现在终于找到了解决方法:查看英文原版内容:http://djangobook.com/ ...

  9. python学习笔记&lpar;一&rpar;元组&comma;序列&comma;字典

    python学习笔记(一)元组,序列,字典

随机推荐

  1. e&period;stopPropagation&lpar;&rpar;&semi;与 e&period;preventDefault&lpar;&rpar;&semi;

    e.stopPropagation()阻止事件冒泡 <head> <title></title> <script src="Scripts/jque ...

  2. three&period;js 之旅一

    扯一段废话,当你遇到一个没人知道的问题时,你该怎么办?         问周围人,他们遇到这种情况怎么办.作为程序员,这种情况肯定时有发生,我们要学会寻找资源. Three.js的六个基本步骤 1.设 ...

  3. Objective-C中系统宏的用法总结

    先说一下本文中会提到的内容:##,__VA_ARGS__, __FILE__, __LINE__ , __FUNCTION__等 宏变量: 先举一个例子,会用到上面这些宏: #define mypri ...

  4. javascript 简易文本编辑器

    转载请注明出处:http://www.cnblogs.com/enzozo/p/4357031.html 写在前面: 本文本编辑器具备功能:选择字体大小.颜色.加粗.斜体.下划线.点击 'Submit ...

  5. poj3621 Sightseeing Cows --- 01分数规划

    典型的求最优比例环问题 參考资料: http://blog.csdn.net/hhaile/article/details/8883652 此题中,给出每一个点和每条边的权值,求一个环使 ans=∑点 ...

  6. 不可不知的DIP、IoC、DI以及IoC容器

    面向对象设计(OOD)有助于我们开发出高性能.易扩展以及易复用的程序.当中.OOD有一个重要的思想那就是依赖倒置原则(DIP),并由此引申出IoC.DI以及Ioc容器等概念. 本文首先用实例阐述四个概 ...

  7. 利用nginx concat模块合并js css

    前言: nginx-http-concat模块是由淘宝网开发的,现在淘宝网合并js和css正是用这个模块,如链接http://a.tbcdn.cn/??s/kissy/1.2.0/kissy-min. ...

  8. 国寿e店&sol;人寿云参会云助理,不去公司就能刷脸考勤打卡?

    自从2017年3月平安保险公司实行E行销打卡考勤以来,保险增员迅猛增加,保险业绩也随之水涨船高.年底开始中国人寿保险也陆续开始实行app考勤,有些需要连接公司指定WiFi,或在指定地点方可打卡考勤.不 ...

  9. 从Dynamics CRM2011到Dynamics CRM2016的升级之路

    CRM的产品更新特别快,特别是最近的几个版本,很多客户依旧停留在2011甚至是4.0,也经常会听到有人问2011能不能升级至最新版,2013能不能升级至最新版,本文将简单演示下从2011升级到2016 ...

  10. com&period;mysql&period;jdbc&period;Driver 和 com&period;mysql&period;cj&period;jdbc&period;Driver的区别

    com.mysql.jdbc.Driver 是 mysql-connector-java 5中的,com.mysql.cj.jdbc.Driver 是 mysql-connector-java 6中的 ...