# 正则模块
'''
正则就是用一些具有特殊含义的符号组合到一起用来描述字符或字符串的方法
或者说,正则就是用来描述一类事物的规则
它内嵌在python中,并通过re模块实现
正则表达式模式被编译成一系列的字节码,然后由用c编写的匹配引擎执行
'''
'''
生活中处处都是正则
比如,描述:四条腿
四条腿的动物或者桌子椅子
继续描述:活的
四条腿的动物
'''
'''
\w 匹配字母数字及下划线
\W 匹配非字母数字及下划线
\s 匹配任意空白字符
\S 匹配任意空白字符
\d 匹配任意数字
\D 匹配任意非数字
\n 匹配一个换行符
\t 匹配一个制表符
^ 匹配字符串的开头
$ 匹配字符串的末尾
'''
# import re
# print(re.findall('\w','egon 123 + - _ *')) # ['e', 'g', 'o', 'n', '1', '2', '3', '_']
# print(re.findall('\W','egon 123 + - _ *')) # [' ', ' ', '+', ' ', '-', ' ', ' ', '*']
# print(re.findall('\s','egon 123 + \n \t - _ *')) # [' ', ' ', ' ', '\n', ' ', '\t', ' ', ' ', ' ']
# print(re.findall('\S','egon 123 + \n \t - _ *')) # ['e', 'g', 'o', 'n', '1', '2', '3', '+', '-', '_', '*']
# print(re.findall('\d','egon 123 + \n \t - _ *')) # ['1', '2', '3']
# print(re.findall('\D','egon 123 + \n \t - _ *')) # ['e', 'g', 'o', 'n', ' ', ' ', '+', ' ', '\n', ' ', '\t', ' ', '-', ' ', '_', ' ', '*']
# print(re.findall('\n','egon 123 + \n \t - _ *')) # ['\n']
# print(re.findall('\t','egon 123 + \n \t - _ *')) # ['\t']
# print(re.findall('e','egon 123 + \n \t - e _ *')) #['e', 'e']
# print(re.findall('^e','egon 123 + \n \t - _ *')) # ['e']
# print(re.findall('^e','aegon 123 + \n \t - _ *')) # []
# print(re.findall('o','egon 123 + hello')) # ['o', 'o']
# print(re.findall('o$','egon 123 + hello')) # ['o']
# print(re.findall('o$','egon 123 + helloa')) # []
'''
. 代表任意一个字符 不能匹配换行符
? 代表?左边的字符出现0次或者1次
* 代表*号左边的字符出现0次或者无穷次
+ 代表+号左边的字符出现1次或者无穷次
{m,n} 代表左边的字符出现m次到n次
.* 贪婪匹配 匹配不够标准 一般是有害的
.*? 非 贪婪匹配
'''
# print(re.findall('a.b','a1b a b a-b aaaaaaaaabbbb')) # ['a1b', 'a b', 'a-b', 'aab']
# print(re.findall('a.b','a1b a b a\nb a-b aaaaaaaaabbbb')) # ['a1b', 'a b', 'a-b', 'aab']
# print(re.findall('a.b','a1b a b a\nb a-b aaaaaaaaabbbb',re.DOTALL)) # ['a1b', 'a b', 'a\nb', 'a-b', 'aab']
# print(re.findall('ab?','a ab a1b a b a\nb a-b aaaaaaaaabbbb')) # ['a', 'ab', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'ab']
# print(re.findall('ab*','a ab a1b a b a\nb a-b aaaaaaaaabbbb')) # ['a', 'ab', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'abbbb']
# print(re.findall('ab+','a ab a1b a b a\nb a-b aaaaaaaaabbbb')) # ['ab', 'abbbb']
# print(re.findall('ab?','a ab a1b a b a\nb a-b aaaaaaaaabbbb'))
# print(re.findall('ab{0,1}','a ab a1b a b a\nb a-b aaaaaaaaabbbb'))
'''
['a', 'ab', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'ab']
['a', 'ab', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'ab']
'''
# print(re.findall('ab*','a ab a1b a b a\nb a-b aaaaaaaaabbbb'))
# print(re.findall('ab{0,}','a ab a1b a b a\nb a-b aaaaaaaaabbbb'))
'''
['a', 'ab', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'abbbb']
['a', 'ab', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'abbbb']
'''
# print(re.findall('ab+','a ab a1b a b a\nb a-b aaaaaaaaabbbb'))
# print(re.findall('ab{1,}','a ab a1b a b a\nb a-b aaaaaaaaabbbb'))
'''
['ab', 'abbbb']
['ab', 'abbbb']
'''
# print(re.findall('ab{1,4}','a ab a1b abbbbb b a\nb a-b aaaaaaaaabbbb')) # ['ab', 'abbbb', 'abbbb']
# print(re.findall('a.*b','a ab xxxyya123b345b a123ba456b'))
# print(re.findall('a.*b','xxxyya123b345b a123ba456b'))
'''
['a ab xxxyya123b345b a123ba456b']
['a123b345b a123ba456b']
'''
# print(re.findall('a.*?b','a ab xxxyya123b345b a123ba456b'))
# print(re.findall('a.*?b','xxxyya123b345b a123ba456b'))
'''
['a ab', 'a123b', 'a123b', 'a456b']
['a123b', 'a123b', 'a456b']
'''
# print(re.findall('compan(y|iess)','too many companiess have gone company bankrupt,and the next cpompan one is whos company'))
# print(re.findall('compan(?:y|iess)','too many companiess have gone company bankrupt,and the next cpompan one is whos company'))
'''
['iess', 'y', 'y']
['companiess', 'company', 'company']
'''
# print(re.findall('href="(.*?)"','<a href="http://www.baidu.com">点击我</a>'))
'''
['http://www.baidu.com']
'''
# rawstring
# print(re.findall(r'a\\c','a\c a1c abc'))
# print(re.findall('a\\\c','a\c a1c abc'))
# print(re.findall('a\\\\c','a\c a1c abc'))
'''
['a\\c']
['a\\c']
['a\\c']
'''
# [] 取[]内任意的一个
# print(re.findall('a[a-z]b','acb aDb a-b aob a1b a\b')) # ['acb', 'aob']
# print(re.findall('a[A-Z]b','acb aDb a-b aob a1b a\b')) # ['aDb']
# print(re.findall('a[a-zA-Z]b','acb aDb a-b aob a1b a\b')) # ['acb', 'aDb', 'aob']
# print(re.findall('a[0-9]b','acb aDb a-b aob a1b a\b')) # ['a1b']
# print(re.findall('a[-+*/]b','acb aDb a-b aob a1b a\b')) # ['a-b'] # print(re.findall('a[^-+*/]b','acb aDb a-b aob a1b a\b')) # ['acb', 'aDb', 'aob', 'a1b']
# print(re.findall(r'a[^-+*/]b','acb aDb a-b aob a1b a\b'))
# print(re.findall('ra[^-+*/]b','acb aDb a-b aob a1b a\b'))
# print(re.findall('a[^-+*/]b',r'acb aDb a-b aob a1b a\b'))
# print(re.findall('a[^-+*/]b','acb aDb a-b aob a1b a\\b'))
'''
['acb', 'aDb', 'aob', 'a1b']
['acb', 'aDb', 'aob', 'a1b']
[]
['acb', 'aDb', 'aob', 'a1b', 'a\\b']
['acb', 'aDb', 'aob', 'a1b', 'a\\b']
''' # re模块的其他方法
# re.search() 只取一个
# print(re.search('a[^-+*/]b','acb aDb a-b aob a1b a9b a\b'))
# print(re.search('a[*]b','acb aDb a-b aob a1b a9b a\b'))
# print(re.search('a[0-9]b','acb aDb a-b aob a1b a9b a\b'))
# print(re.search('a[0-9]b','acb aDb a-b aob a1b a9b a\b').group())
'''
<re.Match object; span=(0, 3), match='acb'>
None
<re.Match object; span=(16, 19), match='a1b'>
a1b
'''
# re.match()
# print(re.match('a[0-9]b','a0b acb aDb a-b aob a1b a9b').group()) # a0b
# print(re.search('^a[0-9]b','a0b acb aDb a-b aob a1b a9b').group()) # a0b
# re.split()
# print(re.split(':','root:x:0:0::/root:/bin/bash')) # ['root', 'x', '0', '0', '', '/root', '/bin/bash']
# print(re.split(':','root:x:0:0::/root:/bin/bash',maxsplit=1)) # ['root', 'x:0:0::/root:/bin/bash']
# re.sub() 替换
# print(re.sub('root','admin','root:x:0:0::/root:/bin/bash')) # admin:x:0:0::/admin:/bin/bash
# print(re.sub('root','admin','root:x:0:0::/root:/bin/bash',1)) # admin:x:0:0::/root:/bin/bash
# print(re.sub('^([a-zA-Z]+)([^a-zA-Z])(.*?)([^a-zA-Z])([a-zA-Z]+)$',r'\5\2\3\4\1','root:x:0:0::/root:/bin/bash')) # bash:x:0:0::/root:/bin/root
# re.compile()
# import re
# obj=re.compile('a\d{2}b')
# print(obj.findall('a12b a123b a12345b abbb')) # ['a12b']
# print(obj.search('a12b a123b a12345b abbb'))
# print(obj.search('a12b a123b a12345b abbb').group())
'''
<re.Match object; span=(0, 4), match='a12b'>
a12b
'''
# import time
# print(time.time()) # 1576152639.0129972 时间戳 一般用来计量时间
# print(time.localtime()) # 本地时区 东八区
# print(time.gmtime()) # 标准时间
'''
time.struct_time(tm_year=2019, tm_mon=12, tm_mday=12, tm_hour=20, tm_min=12, tm_sec=26, tm_wday=3, tm_yday=346, tm_isdst=0)
time.struct_time(tm_year=2019, tm_mon=12, tm_mday=12, tm_hour=12, tm_min=12, tm_sec=26, tm_wday=3, tm_yday=346, tm_isdst=0)
'''
# print(time.strftime('%Y-%m-%d %H-%M-%S'))
# print(time.strftime('%Y-%m-%d %X'))
'''
2019-12-12 20-16-10
2019-12-12 20:16:10
'''
# 了解
# print(time.localtime(time.time())) # time.struct_time(tm_year=2019, tm_mon=12, tm_mday=12, tm_hour=20, tm_min=20, tm_sec=13, tm_wday=3, tm_yday=346, tm_isdst=0)
# print(time.gmtime(time.time())) # time.struct_time(tm_year=2019, tm_mon=12, tm_mday=12, tm_hour=12, tm_min=21, tm_sec=51, tm_wday=3, tm_yday=346, tm_isdst=0)
# print(time.mktime(time.localtime())) # 1576153398.0
# print(time.strftime('%Y-%m-%d',time.localtime())) # 2019-12-12
# print(time.strptime('2019-12-12','%Y-%m-%d')) # time.struct_time(tm_year=2019, tm_mon=12, tm_mday=12, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=3, tm_yday=346, tm_isdst=-1)
# print(time.asctime(time.localtime()))
# print(time.ctime())
'''
Thu Dec 12 20:28:03 2019
Thu Dec 12 20:28:03 2019
'''
# datetime
# import datetime
# print(datetime.datetime.now()) # 2019-12-12 20:30:13.626072
# print(datetime.datetime.fromtimestamp(111111)) # 1970-01-02 14:51:51
# print(datetime.datetime.now()+datetime.timedelta(days=3))
# print(datetime.datetime.now()+datetime.timedelta(days=-3))
# print(datetime.datetime.now()+datetime.timedelta(hours=3))
# print(datetime.datetime.now()+datetime.timedelta(minutes=3))
# print(datetime.datetime.now()+datetime.timedelta(seconds=3))
'''
2019-12-15 20:34:16.275172
2019-12-09 20:34:16.275172
2019-12-12 23:34:16.275172
2019-12-12 20:37:16.275172
2019-12-12 20:34:19.275172
'''
# print(datetime.datetime.now().replace(year=1999,hour=12)) # 1999-12-12 12:35:44.337966

re模块 时间模块的更多相关文章

  1. Python常用模块-时间模块(time&datetime)

    Python常用模块-时间模块(time & datetime) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.初始time模块 #!/usr/bin/env pyth ...

  2. 模块-时间模块(new)

    模块-时间模块 导入: import time 方法: _STRUCT_TM_ITEMS __doc__ __loader__ __name__ __package__ __spec__ altzon ...

  3. Python常用模块-时间模块

    在写代码的过程中,我们常常需要与时间打交道,在python中,与时间处理有关的模块有time,datetime和calendar.,这里主要介绍time和datetime模块 在python中,表示时 ...

  4. random 模块 时间模块(time) sys模块 os模块

    random  模块 1.随机小数 random.random()  0-1内的随机小数 random.uniform(1,5)  1-5范围内的随机小数 2.随机整数 random.randint( ...

  5. day 18 random模块 时间模块 sys模块 os模块

    import random 利用random模块可以进行从一个列表或者数字范围之间随机取出一个数字 # 取随机小数 : 数学计算 print(random.random()) # 取0-1之间的小数 ...

  6. 常用模块(collections模块,时间模块,random模块,os模块,sys模块,序列化模块,re模块,hashlib模块,configparser模块,logging模块)

    认识模块 什么是模块? 常见的场景:一个模块就是一个包含了python定义和声明的文件,文件名就是模块名字加上.py的后缀. 但其实import加载的模块分为四个通用类别: 1 使用python编写的 ...

  7. Python——模块——时间模块

    1.time模块 (1)时间戳 >>> time.time() 1472016249.393169 (2)将时间戳转换成当前时间元祖 time.localtime()time.gmt ...

  8. random随机模块,time时间模块

    random /随机模块: 作用: 在某个范围内取到每一个值得概率是相通的. 一.随机小数 random.random() import random print(random.random())  ...

  9. Python_Mix*random模块,time模块,sys模块,os模块

    random模块 作用: 生成随机数(整数,小数,从列表中随机抽值,打乱列表顺序) 常用函数: random.random( )生成随机小数 random.uniform( )取一个范围之间的小数 r ...

随机推荐

  1. HTML To Word

    一.源码特点       1.在一些实际的应用场景中,有用户需要将一批规范的资料网页保存为WORD文档以便离线传阅或用于其它需求.在此之前,使用了OFFICE组件来尝试完成此功能需求,但是效果都不尽如 ...

  2. picker组件 label组件讲解

    label组件:包住表单的组件,将里面的表单和label里的元素,紧紧的包在一起,当触发label里的元素,就相当于触发了表单组件 属性:for:类型 字符串 表单的 id 的值 picker组件:是 ...

  3. IBM Security App Scan Standard 工具的使用

    1.AppScan是什么? AppScan是IBM的一款web安全扫描工具,可以利用爬虫技术进行网站安全渗透测试,根据网站入口自动对网页链接进行安全扫描,扫描之后会提供扫描报告和修复建议等. AppS ...

  4. (转)datagridview 自定义列三步走

    本文转载自:http://blog.csdn.net/zx13525079024/article/details/4814642 我们如果想自定义实现datagridview的某列,例如是datagr ...

  5. 红帽虚拟化RHEV-PXE批量安装RHEV-H

    目录 目录 前言 软件环境 前提 部署 PXE 环境 使用 yum 安装所需软件 配置 DHCP 配置 TFTP-Server 配置 vsftpd 服务用于提供安装系统所需软件包 安装 kicksta ...

  6. OpenStack 多节点纳管 vCenter 5.5

    目录 目录 测试环境 Nova 配置OpenStack 纳管 vCenter 虚拟机 Glance 配置OpenStack 纳管 vCenter 镜像 Cinder 配置OpenStack 纳管 vC ...

  7. 阶段1 语言基础+高级_1-3-Java语言高级_06-File类与IO流_08 转换流_6_练习_转换文件编码

  8. 阶段1 语言基础+高级_1-3-Java语言高级_05-异常与多线程_第6节 Lambda表达式_1_函数式编程思想概述

    函数式编程和面向对象的区别

  9. 当在浏览器中输入一个url后回车,后台发生了什么?比如输入url后,你看到了百度的首页,那么这一切是如何发生的呢?

    简单来书有以下步骤: 查找域名对应的IP地址.这一步会依次查找浏览器缓存,系统缓存,路由器缓存,ISPDNS缓存,13台根域名服务器. 向IP对应的服务器发送请求. 服务器响应请求,发回网页内容. 浏 ...

  10. js-禁止长页面滚动

    标题的需求问题其实我经常遇到.尤其是在碰到页面同时出现有视频及弹层的情况. 当然我说的问题皆是针对微信H5开发的哈 IOS中,视频播放,弹层出现时,视频在弹层的下面,不会出现问题: 安卓手机中,完了, ...