re模块 时间模块
# 正则模块
'''
正则就是用一些具有特殊含义的符号组合到一起用来描述字符或字符串的方法
或者说,正则就是用来描述一类事物的规则
它内嵌在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模块 时间模块的更多相关文章
- Python常用模块-时间模块(time&datetime)
Python常用模块-时间模块(time & datetime) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.初始time模块 #!/usr/bin/env pyth ...
- 模块-时间模块(new)
模块-时间模块 导入: import time 方法: _STRUCT_TM_ITEMS __doc__ __loader__ __name__ __package__ __spec__ altzon ...
- Python常用模块-时间模块
在写代码的过程中,我们常常需要与时间打交道,在python中,与时间处理有关的模块有time,datetime和calendar.,这里主要介绍time和datetime模块 在python中,表示时 ...
- random 模块 时间模块(time) sys模块 os模块
random 模块 1.随机小数 random.random() 0-1内的随机小数 random.uniform(1,5) 1-5范围内的随机小数 2.随机整数 random.randint( ...
- day 18 random模块 时间模块 sys模块 os模块
import random 利用random模块可以进行从一个列表或者数字范围之间随机取出一个数字 # 取随机小数 : 数学计算 print(random.random()) # 取0-1之间的小数 ...
- 常用模块(collections模块,时间模块,random模块,os模块,sys模块,序列化模块,re模块,hashlib模块,configparser模块,logging模块)
认识模块 什么是模块? 常见的场景:一个模块就是一个包含了python定义和声明的文件,文件名就是模块名字加上.py的后缀. 但其实import加载的模块分为四个通用类别: 1 使用python编写的 ...
- Python——模块——时间模块
1.time模块 (1)时间戳 >>> time.time() 1472016249.393169 (2)将时间戳转换成当前时间元祖 time.localtime()time.gmt ...
- random随机模块,time时间模块
random /随机模块: 作用: 在某个范围内取到每一个值得概率是相通的. 一.随机小数 random.random() import random print(random.random()) ...
- Python_Mix*random模块,time模块,sys模块,os模块
random模块 作用: 生成随机数(整数,小数,从列表中随机抽值,打乱列表顺序) 常用函数: random.random( )生成随机小数 random.uniform( )取一个范围之间的小数 r ...
随机推荐
- vundle的安装笔记-20160721
vundle是一个vim管理插件, 而bundle是命令, 用来操作vundle的. bundle 英[ˈbʌndəl] 美[ˈbʌndəl] n. 捆,束,包:大量:一大笔钱:极度 v. 归拢:捆: ...
- JSON基础,简单介绍
JSON(JavaScript Object Notation(记号.标记)) 是一种轻量级的数据交换格式.它基于JavaScript(Standard ECMA-262 3rd Edition - ...
- day47—JavaScript事件基础应用
转行学开发,代码100天——2018-05-02 1.事件对象 JavaScript中事件对象通常用定义变量ev或event表示.为了兼顾浏览器兼容问题,定义事件对象为 var oEvent = ev ...
- 快速入门分布式消息队列之 RabbitMQ(1)
目录 目录 前言 简介 安装 RabbitMQ 基本对象概念 Message 消息 Producer 生产者 Consumer 消费者 Queue 队列 Exchange 交换机 Binding 绑定 ...
- 类BigDecimal
/* * float和double类型的数据存储和int不一样 * * float和double类型容易丢失精度 * * 因此使用BigDecimal * * BigDecimal类描述:不可变的,任 ...
- 通过命令直接修改jar包中的静态文件
1.先将要修改的jar包备份 copy xxx.jar xxx.jar_bak 2.建立一个新的目录便于后面的打包 mkdir jar_tmp 3.将包放到刚刚创建的目录里解压 mv xxx.jar ...
- 优化 | Redis AOF重写导致的内存问题 不错
一.问题说明 业务上接到报警提示服务器内存爆了,登录查看发现机器剩余内存还很多,怀疑是被OOM了,查看/var/log/messages: kernel: [25918282.632003] Out ...
- 基于PyQt5的Python-Gui开发
环境搭建 电脑环境 win10 64位系统 Python3.5安装 从Python官网下载python3.5安装文件,选择windows 64位版本python-3.6.5-amd64.exe.双击安 ...
- Python基础-1 python由来 Python安装入门 注释 pyc文件 python变量 获取用户输入 流程控制if while
1.Python由来 Python前世今生 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚 ...
- 无法打开内核设备"\\.\Global\vmx86":系统找不到指定的文件. 是否在安装 VMwareWorksation 后重新引到 ? 问题解决
节前正常使用的工作环境, 过完春节后, 上班第一天就不正常工作了, 难不成机器也要放假休息, 虚拟机打不开了, 没办法办公可是不行的. 上网查原因, 解决问题. 上网看了很多关于此问题的解决办法, 很 ...