正则表达式笔记

本文详细介绍了正则表达式的基本用法,包括元字符(如.wsd等)、反义字符、限定符(*+?{n,}等)以及连接符|的应用。还讲解了如何进行穷举测试和使用Python的re.findall函数来验证正则表达式。" 9005243,1395742,Ackerman函数的递归与非递归算法实现,"['算法', '数学', '递归', '非递归']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、正则表达式:

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. 穷举测试  []

如何匹配1-9  [1,2,3,4,5,6,7,8,9]   [1-9]

  1. 如何验证表达式是否满足正则表达式

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)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值