正则模块

模块

time 模块

提供三种不同类型的时间戳

time.time()时间戳形式

格式化时间

time.strftime(%Y-%m-%d %X)

结构化时间

time.localtime()

结构化时间 -----> 格式化时间

struct_time = time.localtime(3600* 24 * 365)

time.strftime('%Y - %m - %d %X',struct_time)

格式化时间 ------> 结构化时间

format_time = time.strftime('%Y- %m - % d %X')

time.strptime(format_time,'%Y- %m -% d %X')

结构化时间 --- 》 时间戳

struct_time = time.localtime(3600 * 24 * 365)

time.mktime(struct_time)

时间戳 ---- 》 结构化时间

time_stamp ----> 结构化时间

time.localtime(time_stamp)

time.time

time.sleep()

datatime

now = datetime.datetime.now()

时间的加减

now + datetime.timedelta(3)

加三小时

now + datatime.timedelta(hours=3)

random

random.random()

random.randint()

打乱

lt = [1,2,3]

random.shuffle(lt)

随机选择一个

random.chioce(lt)

random.seed(11111)

random.random()

hashlib

对字符加密

m = hashlib.md5()

m.update(b'say')

m.hexdigest()

叠加性

m.update(b'say')

m.update(b'hello')

等效于如下

m.update(b'say hello')

hmac模块

对字符加密 ,并且加上密钥,加盐

m = hmac.new(b'密钥')

m.update(b'say')

m.hexdigest()

typing()

与函数一起联用,控制函数参数的数据类型,提供了基础数据类型之外的数据类型

from typing import Iterable,Iterator,Generator

resquests()

response = requests.get()

.*?表示所有类型的都要

re 模块

去字符串找 符合某种特点的字符串

元字符

^ :以....开头

$ : 以....结尾

. : 任意字符

\d : 数字

\w :数字字母下划线

\s : 空格/ \t / \n

\D : 非数字

\W : 非数字字母下划线

\S : 非空格 / \t / \n

+ : 前面的字符至少1个

? : 前面的字符0 - 1 个

* : 前面的字符至少0个

[] : 中括号内的都可以

[^] :中括号内的都不可以

| : 或

{2} :前面的字符有两个

{1,2}前面的字符有1到2个

贪婪模式

. (任意字符) * (0-无穷个)

.*

非贪婪模式

.(任意字符) * (0 - 无穷个) ?(让他进入非贪婪模式)

.*?

bug

直接使用.*?匹配会匹配到空字符串

函数

re.compile

先写匹配规则然后赋值后进行使用

match

从头开始找一个,找得到就不找了,找不到报错

search

从字符串找一个,就不找了

分割字符

split('\d+',字符)

sub

sub(re.sub('\d+',' ',s))

subn() ------>替换多少次

re.S 会让点匹配换行符

分组

只要括号里的,a(.)c(d)----->元组返回括号中的匹配

有名分组

re.search ('(?P<name1>)(?P<name2>)',s).groupdict()

超高级用法

re.sub('c(?P<name1\d+>)a','\g<name1>',s)###\g<name1>为不要动的内容

posted @ 2019-10-06 12:54  小凯子+  阅读(131)  评论(0)    收藏  举报