一、正则表达式:
1.元字符
(1).匹配除了换行符以外的任意一个字符
(2)\w 匹配任意一个字母、数字、下划线或汉字 \W '匹配除了任意一个字母、数字、下划线或汉字之外的
(3)\s 匹配任意一个空白符(空格、Tab空格、换行符) \S非空
(4)\d 匹配的任意一个数字(0-9) \D 匹配任意一个非数字
(5)\b 匹配单词的开始和结束的位置 i am a good i?am studen,bad boy! ^\bam
(6)^ 匹配字符串的开始位置
(7)$ 匹配字符串的结束位置
2.反义
(1)\W 匹配除了字母数字下划线以外的任意一个字符
(2)\S 匹配除了空白符(空格、Tab空格、换行符)以外的任意一个字符
(3)\D 匹配任意一个非数字的字符
(5)\B 匹配任意一个非单词开始和结束的位置
3.限定符
(1)* 重复0次或多次
(2)+ 重复1次或多次
(3)?重复0次或1次(?前的字符)
(4){n}重复n次
(5){n,}最少重复N次
(6){n,m}重复n次到m次
3.连接符
|
- 穷举测试 []
如何匹配1-9 [1,2,3,4,5,6,7,8,9] [1-9]
- 如何验证表达式是否满足正则表达式
python的匹配函数:re.findall(正则表达式,字符串文本)
# (0)保证学院信息至少5个,每个学院信息符合作业01的描述
# (1)查询所有学院信息
# (2)提取满足作业01要求的第三个学院的相关信息(可以使用作业01的正则表达式,也可以使用其它正则,能清晰实现需求即可)
# (3)删除第三个学院信息
# (4)再次新增第三个学院信息
# (5)换到其它同学电脑也能跑通
# 查询url
url01 = "http://127.0.0.1:8000/api/departments/"
# 发送查询请求
res = requests.get(url01)
# 定义被匹配的字符串,也就是返回的响应报文的纯文本格式
str01 = res.text
print("查询所有返回响应报文的纯文本数据为:",str01)
# 定义要查找的学院信息的正则表达式
p1 = '\{"dep_id":"\d{1,10}","dep_name":"\w{1,20}","master_name":"\w{1,20}","slogan":"\w{0,20}"\}'
# 匹配
resmatch01 = re.findall(p1,str01)
print("我们要寻找的所有学院信息为:",resmatch01)
# p2 = '"dep_id":"(.*?)"'
# 定义id的正则表达式
p2 = '"dep_id":"(\d{1,10})"'
# 匹配
resmatch02 = re.findall(p2,str01)
print("我们要寻找的学院信息的ID为:",resmatch02)
# 删除
url02 = url01 + resmatch02[2]+"/"
# http://127.0.0.1:8000/api/departments/ + 62726 + /
# http://127.0.0.1:8000/api/departments/62726/
res02 = requests.delete(url02)
print("删除后的响应状态码为:",res02.status_code)
# 新增
data03 = '{"data":[' + resmatch01[2] + ']}'
print("新增消息体数据为:",data03)
myheader = {"Content-Type":"application/json"}
res03 = requests.post(url=url01,data=data03.encode("utf-8"),headers = myheader)
print("新增后的响应报文为:",res03.text)