re模块:
字符 | 功能 |
字符属性 | |
. | 匹配任意一个字符 |
[] | 匹配[]中列举的字符 |
d | 匹配数字0-9 |
D | 匹配非数字 |
s | 匹配空白 |
S | 匹配非空白 |
w | 匹配单词字符:a-z,A-Z,0-9,_. |
W | 匹配非字符单词 |
字符数量属性 | |
* | 匹配前一个字符出现0次或者无限次 |
+ | 匹配前一个字符出现1次或者无限次 |
? | 匹配前一个字符出现1次或者0次 |
{m} | 匹配前一个字符出现m次 |
{m,n} | 匹配前一个字符出现m-n次 |
匹配开头和结尾 | |
^ | 匹配字符串开头 |
$ | 匹配字符串结尾 |
匹配分组 | |
| | 匹配左右任意一个表达式 |
(a,b) | 将括号中字符串作为一个分组 |
(? : ) | 取消分组 |
um | 引用前面第num组匹配到的字符串 |
(?p<name>) | 分组起别名 |
(?P=name) | 引用别名为name分组匹配到的字符串 |
match(pattern,str,[,flag]):从字符串开头开始匹配,匹配不到返回None
import re str= 'zpp123xnq@163.com' res = re.match(r'[w]+',str) print(res.group()) #####zpp123xnq
search(pattern,str,[,flag]):匹配第一次出现的符合条件的字符串,并返回
import re str= 'zpp123xnq@163.com' res1 = re.search(r'[d]+',str) print(res1.group()) ####123
findall(pattern,str):用列表返回所有能匹配到的结果
1 import re 2 str= 'zpp123xnq@163.com' 3 res2 = re.findall(r'[d]+',str) 4 print(res2) 5 ####['123', '163']
sub(pattern, repl,str,num):将匹配到的数据进行替换
1 import re 2 str= 'zpp123xnq@163.com' 3 res3 = re.sub(r'[d]+',r'love',str) 4 print(res3) 5 ####zpplovexnq@love.com
split(pattern,str):根据匹配进行切割字符串,并返回一个列表
1 import re 2 str= 'zpp123xnq@163.com' 3 res4 = re.split(r'3',str) 4 print(res4) 5 ####['zpp12', 'xnq@16', '.com']
time模块:
获取时间
time.time() :获取当前时间的时间戳
time.strftime('%Y-%m-%d %H-%M-%S') : 获取格式化后的字符(type = str)
time.localtime(): 获取元组形式的时间
time.gmtime(): 将时间转换成UTC格式的元组格式时间
1 import time 2 print(time.time()) 3 print(time.strftime('%Y-%m-%d %H-%M-%S')) 4 print(time.localtime()) 5 print(time.gmtime()) 6 ‘’‘ 7 1537172237.677087 8 9 2018-09-17 16-17-17 10 11 time.struct_time(tm_year=2018, tm_mon=9, tm_mday=17, tm_hour=16, tm_min=17, tm_sec=17, tm_wday=0, tm_yday=260, tm_isdst=0) 12 13 time.struct_time(tm_year=2018, tm_mon=9, tm_mday=17, tm_hour=8, tm_min=17, tm_sec=17, tm_wday=0, tm_yday=260, tm_isdst=0) 14 ’‘’
时间转化
time.mktime(): 将结构化(元组)时间转化为时间戳
time.strptime():将字符串时间转化为结构化(元组)时间
time.strftime():将结构化(元组)转化为字符串时间
time.asctime():将结构化(元组)转化为英文字符串时间
time.ctime():将时间戳转化为应为英文字符串时间
1 print(time.mktime(time.localtime())) 2 print(time.strptime('2014-11-11','%Y-%m-%d')) 3 print(time.strftime('%Y-%m-%d',time.localtime())) 4 print(time.asctime(time.localtime())) 5 print(time.ctime(time.time())) 6 print(type(time.ctime(time.time()))) 7 8 ‘’‘ 9 1537175609.0 10 time.struct_time(tm_year=2014, tm_mon=11, tm_mday=11, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=1, tm_yday=315, tm_isdst=-1) 11 2018-09-17 12 Mon Sep 17 17:13:29 2018 13 Mon Sep 17 17:13:29 2018 14 <class 'str'> 15 ’‘’
datetime模块
datatime模块中,将str类型的时间,转换为datetime.datetime类型
time = "2006.11.22 10.20.20"
date_time_time = datetime.datetime.strptime(time, "%Y.%m.%d %H.%M.%S")
datatime模块中,将datetime.datetime类型的时间,转换为str类型
str_time = datetime.datetime.strftime(date_time_time,"%Y.%m.%d %H.%M.%S")
1 import datetime 2 #1、datetime.datetime获取当前时间 3 print(datetime.datetime.now()) 4 #2、获取三天后的时间 5 print(datetime.datetime.now()+datetime.timedelta(+3)) 6 #3、获取三天前的时间 7 print(datetime.datetime.now()+datetime.timedelta(-3)) 8 #4、获取三个小时后的时间 9 print(datetime.datetime.now()+datetime.timedelta(hours=3)) 10 #5、获取三分钟以前的时间 11 print(datetime.datetime.now()+datetime.timedelta(minutes = -3)) 12 13 import datetime 14 print(datetime.datetime.now()) #2017-08-18 11:25:52.618873 15 print(datetime.datetime.now().date()) #2017-08-18 16 print(datetime.datetime.now().strftime("%Y-%m-%d %H-%M-%S")) #2017-08-18 11-25-52
1 #1、datetime对象与str转化 2 # datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S") 3 '2018-03-09 10:08:50' 4 5 # datetime.datetime.strptime('2016-02-22',"%Y-%m-%d") 6 datetime.datetime(2016, 2, 22, 0, 0) 7 8 #2、datetime对象转时间元组 9 # datetime.datetime.now().timetuple() 10 time.struct_time(tm_year=2018, tm_mon=3, tm_mday=9, 11 12 #3、时间戳转换成datetime对象 13 # datetime.datetime.fromtimestamp(1520561646.8906238) 14 datetime.datetime(2018, 3, 9, 10, 14, 6, 890624)