Python学习笔记05


以下所有的知识都是在慕课网的七月老师课上的内容,这边只充作笔记,以便日后遗忘时查看,并无其他商业需求。

正则表达式

在这里插入图片描述
re是Python内置对正则表达式操作的类库,通过re.findall可以对正则表达式进行操作

元字符与普通字符

在这里插入图片描述
\d 这种就是元字符, “Python”这种就是普通字符,\d表示数字字符,\D表示非数字字符,大写的元字符是小写元字符的补集

字符集

在这里插入图片描述
【】表示一个字符集,【cf】表示匹配c或者f字符

字符集取反

在这里插入图片描述
字符集取反加上 ^ 就好了,【 ^ cdf】表示不是cfd的字符

字符集的简写

在这里插入图片描述
如果你想匹配cdef这些连续的字符,可以简写成【c-f】就行了

概括字符集(是七月老师自己定义的一个概念

\d匹配数字字符
\D匹配非数字字符
\d也可以用【0-9】来表示
\D也可以用【^0-9】来表示
\w是匹配所以的字母和数字和下划线
\w也可以用【A-Za-z0-9_】来表示
\W匹配不是字母和数字和下划线的字符
\s匹配空白字符
\S匹配非空白字符
点号 . 是匹配除了换行符\n以外所以字符

数量词

在这里插入图片描述
数量词用{}来表示,里面表示重复的次数,{3,6}表示次数可以重复3到6次

贪婪与非贪婪

在Python中,正则表达式的数量词是贪婪的属性
所以数量词匹配3次以后并不会认为匹配已经结束了,而是尽可能的匹配更多的字符。
在这里插入图片描述
{3,6}?是非贪婪匹配,在数量词后面加一个问号
由上图可以看到,{3.6}?这样的写法和{3}的作用是一样的,因为都是只匹配三个字符了

匹配0次1次或者无限多次

在这里插入图片描述
1.星号号表示前面一个字符匹配0次或者无限多次,python星号 这个正则表达式表示最后一个n字符可以匹配0次或者无数次
在这里插入图片描述
2.+号表示匹配一次或者无限多次
在这里插入图片描述
3.?号表示匹配0次或者1次

边界匹配符

在这里插入图片描述
上面的代码表示匹配4到8位数字,多于8位或者小于4位都不能匹配,但如果不加上边界匹配符,多于8位的数字也会匹配的到
^表示开始位置
$表示结束位置

在这里插入图片描述
用括号括起来表示一组
括号里面的字符是且关系,而【】中括号是表示或关系

匹配模式参数

在这里插入图片描述
re.findall还有第三个参数,这个参数表示匹配的模式
re.I表示忽略大小写,所以即使是c#也能匹配到C#
想匹配多个模式的话用 | 隔开就好了
re.S表示 点号 . 匹配所有字符,包括\n

re.sub正则替换

在这里插入图片描述
第一个参数是正则表达式
第二个参数是替换的字符
第三个参数是将要替换原字符
第四个参数是最大替换次数,0表示匹配无数次,1表示替换一次
在这里插入图片描述
替换字符串还有一个Python中内置的函数 replace 返回值是被替换成功的字符串
在这里插入图片描述
re.sub的第二个参数是可以传递一个函数的
而这个函数返回的字符串将是替换的字符
这个函数的值value不是一个字符串,而是一个对象,这个对象除了有这个字符串是什么之外,还告诉我们这个要替换的字符串在原字符串的位置,(6,8)表示C#字符串前面还有6个字符,8表示到所以8结束,所以替换字符的位置是7、8
在这里插入图片描述
获得这个对象里面的字符串是通过.group字段来获取

search与match函数

在这里插入图片描述
search与match 和findall最大的不同,就是他们都只会匹配一次,而且findall的返回结果是一个列表,而search与match 返回的是一个对象。

group分组

在这里插入图片描述
()括号表示分组并获取

JSON

反序列化

在这里插入图片描述
要先导入import json
json.loads可以解析json字符串
在这里插入图片描述
student打印出来是一个字典类型

序列化

在这里插入图片描述
Pthon的序列化用json.dumps函数,传入一个对象,就可以得到相对应的json字符串

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值